में गेम बोर्ड का ट्रैक रखने के लिए डेटा संरचना मैं ओकैमल के लिए बिल्कुल नया हूं और मैं एक गेम को कार्यान्वित करना चाहता हूं जो चार-इन-लाइन के समान है। मुझे गेम स्थिति रखने के लिए कुछ डेटा संरचना की आवश्यकता है। गेम बोर्ड कुल 16 टाइल्स के साथ 4x4 वर्ग है। मैं ओकैमल में इसके लिए एक प्रस्तुति की तलाश कर रहा हूं जो पूरे स्तंभ, पंक्ति या विकर्ण में सभी तत्वों को पुनर्प्राप्त करने (या कुछ ऑपरेशन करने) को आसान और तेज़ बना देगा। मैं इस गेम पर मिनीमैक्स खोज कर रहा हूं, यही कारण है कि गति महत्वपूर्ण है।OCaml
अब तक मैंने एक आयामी सूची माना है। सूची के साथ समस्या यह है कि यह पता लगाने में कठिनाई होती है कि कौन से तत्व प्रत्येक पंक्ति/कॉलम/विकर्ण से संबंधित हैं, और फिर उदाहरण के लिए उन्हें List.map
से पुनर्प्राप्त करें।
मैंने Array.make 4 (Array.make 4 Empty);;
का उपयोग करने के बारे में सोचा। जब पंक्तियों की बात आती है तो यह बिल्कुल सही है। उन्हें प्राप्त करना और उस पर एक पैटर्न मैच करना आसान है। लेकिन यह व्यक्तिगत कॉलम और विकर्णों पर पैटर्न मिलान करने के लिए एक कोर है।
मैं जो करने में सक्षम होना चाहता हूं वह एक ऐसा फ़ंक्शन है जो गेम बोर्ड लेता है और सभी पंक्तियों/कॉलम/विकर्णों वाली सूचियों की एक सूची देता है। मैं फिर करना चाहूंगा, उदाहरण के लिए, match (rows,columns,diagonals) with (Empty, Empty, Empty, Empty) -> something
।
आप लालित्य या कच्चे गति के लिए जा रहे हैं? अगर कच्ची गति, ऐसा लगता है कि आपका पूरा गेम बोर्ड 32 बिट्स में फिट बैठता है। लेकिन अगर आप ओकैमल सीखना चाहते हैं तो लालित्य शायद बेहतर है। हैंडलिंग बिट्स हर भाषा में समान दिखते हैं। –