एबलोन जैसे खेलों के लिए हेक्सागोनल बोर्ड तर्क का प्रतिनिधित्व करने का कुशल तरीका


11

मुझे एबालोन गेम के लिए एआई को लागू करना है और मैं सोच रहा हूं कि सभी चेक और अपडेट रूटीन में बहुत अधिक संसाधनों को बर्बाद किए बिना जावा का उपयोग करके बोर्ड लॉजिक का प्रतिनिधित्व करने का सबसे अच्छा तरीका क्या है।

क्या बेहतर है विभिन्न सूचियों का उपयोग? सेल वस्तुओं का एक मैट्रिक्स? कोई उपाय?

यहाँ छवि विवरण दर्ज करें


1
Redblobgames.com पर हेक्सागोनल ग्रिड के लिए एक बहुत अच्छा संसाधन है। इसमें आपके पास हेक्सागोनल ग्रिड, उनके समन्वय प्रणालियों और उन पर गणना करने के तरीके के बारे में जानने की जरूरत है।
रोमन रेनर

जवाबों:


7

1) चूंकि बोर्ड में एक निश्चित आकार है, जिसे आप वैसे भी एआई में फीड करने जा रहे हैं, इसलिए आप इसे एक-आयामी सरणी के रूप में कोशिकाओं की सही संख्या के साथ प्रस्तुत कर सकते हैं, जहां प्रत्येक सेल एक स्थान का प्रतिनिधित्व करता है। मंडल। प्रस्तुति के लिए स्क्रीन पर एक आयामी सरणी को मैप करना थोड़ा अजीब हो सकता है, लेकिन यह एक समस्या है जिसे आपको केवल एक बार हल करना होगा।

वही मान्य चालों पर लागू होगा; आप या तो एक आसन्न मैट्रिक्स बना सकते हैं, जो बताती है कि कौन सी कोशिकाएँ दूसरों से सटे हैं, या आसन्नता निर्धारित करने के लिए तर्क के साथ आते हैं। किसी भी तरह से, यह एक बार की लागत होगी।

2) ध्यान दें कि प्रत्येक हेक्स ग्रिड एक दो-अक्ष ग्रिड भी है, सिवाय इसके कि कुल्हाड़ियां एक दूसरे से 60 या 120 से नीचे हैं, ग्रिड की तरह 90 डिग्री के बजाय जहां एक्स और वाई लंबवत हैं। (पुराने हेक्स-टाइल बोर्डगेम्स ने हेक्सेस 1, 2, 3 को एक दिशा में लेबल करने के लिए इस चाल का उपयोग किया, और एए, बीबी, सीसी को दूसरे, तिरछी, दिशा में।)

मैंने बोर्ड गेम्स के कंप्यूटर कार्यान्वयन के लिए स्रोत कोड को देखा है जो (2) का उपयोग करते हैं, और उन्होंने "हेक्स के बीच एक रेखा खोजें" या "हेक्स के बीच की दूरी का पता लगाने" जैसी दिनचर्या प्रदान की। यह एक लंबे समय से पहले था, इसलिए विवरण समय के लिए खो जाते हैं, लेकिन मुझे याद है कि यह बहुत कठिन नहीं था।

(यह पाइथागोरस सामग्री के बजाय अधिक पूर्णांक गणित था;))


1
साल पहले जाने के लिए AI के लिए, मेरे पास 19x19 ऐरे सेल और 192x5 ऐरे टू सेल सेलर्स थे जो तब AI अपनी चाल का पता लगाने के लिए इस्तेमाल करते थे।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.