मैं पेन और पेपर स्टाइल आरपीजी सिस्टम के लिए एक सामान्य नियम पार्सर बनाना चाहता हूं। एक नियम में आमतौर पर एक इकाई के कई गुणों के आधार पर एक पासा और गणना मूल्यों के 1 से एन एंटिटी 1 से एन भूमिकाएं शामिल हो सकती हैं।
उदाहरण के लिए:
खिलाड़ी के पास एसटीआर 18 है, उसका वर्तमान में सुसज्जित हथियार उसे +1 एसटीआर का बोनस देता है, लेकिन डीएक्स -1 का एक हिस्सा है। वह एक राक्षस इकाई पर हमला करता है और खेल तर्क को अब नियमों या कार्यों का एक सेट चलाने के लिए आवश्यक है:
खिलाड़ी पासा को रोल करता है, अगर वह उदाहरण के लिए 8 या अधिक (बेस अटैक वैल्यू जो उसे पास करने की आवश्यकता है, वह उसके आधार विशेषताओं में से एक है!) उसका हमला सफल होता है। राक्षस फिर गणना करने के लिए पासा को लुढ़काता है कि क्या हमला कवच के माध्यम से होता है। यदि हमले को अवरुद्ध किया गया था, तो हाँ क्षति को लिया जाता है।
सरल गणित नियमों के अलावा केवल उपयोगकर्ता के एक निश्चित वर्ग (उदाहरण के लिए योद्धा बनाम जादूगर) या किसी अन्य विशेषता के लिए आवेदन करने जैसी बाधाएं भी हो सकती हैं। तो यह सिर्फ गणितीय कार्यों तक सीमित नहीं है।
यदि आप डंगऑन और ड्रेगन जैसे आरपीजी सिस्टम से परिचित हैं तो आपको पता चल जाएगा कि मैं क्या कर रहा हूं।
मेरा मुद्दा अब यह है कि मेरे पास कोई सुराग नहीं है कि कैसे इसे सबसे अच्छा संभव तरीके से बनाया जाए। मैं चाहता हूं कि लोग किसी भी तरह के नियम को स्थापित करने में सक्षम हों और बाद में एक खिलाड़ी और एक राक्षस का चयन करने जैसी कार्रवाई करें और एक कार्रवाई (एक हमले की तरह नियमों का सेट) चलाएं।
मैं चीजों के डेटाबेस पक्ष के साथ मदद के लिए कम पूछ रहा हूं, लेकिन इसके बारे में और अधिक कि कैसे अपने नियमों को लचीला रखने के लिए एक संरचना और एक पार्सर के साथ आना है। इसके लिए पसंद की भाषा वैसे php है।
मुझे संपादित करें:
मुझे अपने लक्ष्य को परिष्कृत करने दें: मैं अधिक या कम जटिल गेम नियमों का निर्माण करने के लिए एक उपयोगकर्ता के अनुकूल इंटरफेस बनाना चाहता हूं (जिसके लिए किसी को प्रोग्रामिंग भाषा सीखने की आवश्यकता नहीं है)। सरल कारण: सभी समयों पर सभी नियमों को याद रखने की आवश्यकता नहीं है, हम बस इसका उपयोग नहीं करते हैं और यह हर बार उन्हें देखने के लिए एक स्टॉपर है। इसके अलावा: कुछ करने और सीखने के लिए एक मजेदार काम की तरह दिखता है। :)
मैंने अब तक क्या प्रयास किया है: एक गलत आर्किटेक्चर के निर्माण में समय बर्बाद करने के बजाय एक अवधारणा के बारे में सोचना। अब तक मेरे पास यह विचार है कि किसी उपयोगकर्ता को जितनी चाहें उतनी विशेषताएँ बनाने की अनुमति दें और फिर किसी भी प्रकार की इकाई के रूप में कई विशेषताएँ असाइन करें। एक इकाई एक खिलाड़ी, एक राक्षस, एक वस्तु, कुछ भी हो सकती है। अब जब कुछ गणना करते हैं तो डेटा नियम पार्सर को उपलब्ध कराया जाता है ताकि नियम पार्सर खिलाड़ी की तरह काम करने में सक्षम हो। यहाँ प्रश्न यह है कि उस पार्सर को कैसे बनाया जाए।
संपादित करें II:
यहाँ बहुत बुनियादी मूल्य का एक उदाहरण है, लेकिन इसे ठीक से गणना करने के लिए बहुत सी अलग-अलग चीजें और चर खाते हैं।
बेस अटैक बोनस (टर्म) आपका बेस अटैक बोनस (आमतौर पर डी 20 समुदाय द्वारा बीएबी के रूप में जाना जाता है) एक अटैक रोल बोनस है जो चरित्र वर्ग और स्तर से प्राप्त होता है। विभिन्न चरित्र वर्गों के लिए विभिन्न दरों पर बेस अटैक बोनस बढ़ता है। एक चरित्र प्रति चक्कर में दूसरा हमला करता है, जब उसका बेस अटैक बोनस +6 तक पहुंच जाता है, एक तीसरा हमला बेस बोनस +11 या उच्चतर के साथ होता है, और एक चौथाई बेस अटैक बोनस के साथ +16 या उच्चतर होता है। बेस अटैक बोनस अलग-अलग वर्गों से प्राप्त होता है, जैसे कि एक मल्टीकलर्स कैरेक्टर, स्टैक के लिए। एक चरित्र का बेस अटैक बोनस +16 तक पहुंचने के बाद किसी भी अधिक हमले को मंजूरी नहीं देता है, +0 से कम नहीं हो सकता है, और वर्ण स्तर 20 वें तक पहुंचने के बाद वर्ग स्तर के कारण नहीं बढ़ता है। कुछ करतबों के लिए न्यूनतम बेस अटैक बोनस की आवश्यकता होती है।
आप इसे यहाँ पढ़ सकते हैं http://www.dandwiki.com/wiki/Base_Attack_Bonus_(Term) कक्षाओं और करतबों के लिंक सहित जो फिर से हमले के लिए आवश्यक मानों की गणना करने के लिए अपने स्वयं के नियम हैं।
मैं सोचने लगा कि इसे यथासंभव सामान्य रखना भी एक अच्छा नियम पार्सर बनाने के लिए बहुत कठिन होगा।
Func
आधार पर तर्कों के आधार पर प्रोग्राम स्टेट को इनिशियलाइज़ करता है। हैरानी की बात यह है कि मैं Yegge से उस पोस्ट को पहले कभी नहीं मिला, बहुत अच्छा, इसे इंगित करने के लिए धन्यवाद।