मैंने UmmLang से Tic-tac-toe AI implement करके देखा।
UmmLang एक esoteric programming language है जो केवल variables, input/output, conditionals और line jumps जैसी चीजें ही देती है।

[ eoeomeoeoeo,,,,,,,, sigeoeoeok dongtaneo?jun. ] इसका रूप कुछ ऐसा है।

Loops या functions जैसे सामान्य control structures लगभग नहीं हैं। integers तक को dot(.), comma(,) और space से ही व्यक्त करना पड़ता है, इसलिए सामान्य algorithms implement करने के लिए यह काफी असुविधाजनक environment है।

सबसे पहले 2×1 Tic-tac-toe implement करके game board representation और AI implementation method verify किया।
हर cell को एक variable से map किया, empty cell, X, O को क्रमशः 0, 1, 2 से represent किया, और सभी possible states को Dongtan(IF) statements के रूप में list करके AI को यह decide करने के लिए बनाया कि वह कहाँ move करे।
इस प्रक्रिया में game board output interface और user input handling structure भी साथ में बनाया।

इसके बाद इसे 3×3 Tic-tac-toe तक expand किया।
समस्या यह थी कि legal game states करीब 4,520 तक पहुँचती हैं, इसलिए हर case को manually लिखना practically impossible था।
इसलिए Python में एक अलग code generator लिखा।
Generator सभी game states में से वे states हटाता है जहाँ O की संख्या X से ज्यादा है या जहाँ match पहले ही खत्म हो चुका है, फिर हर state में Tic-tac-toe AI (minimax-based) की optimal move calculate करता है।
Calculated result को UmmLang के Dongtan conditional statement format में automatically convert करके case.umm file generate करने के लिए बनाया।

अंत में generated हजारों Dongtan branches को main source में insert करके AI logic पूरा किया।
जब player द्वारा input किए गए coordinates को game board variables में reflect किया जाता है, तो generated conditionals current game state से match करने वाला case ढूँढते हैं और AI की move execute करते हैं।
इसके बाद game board को फिर से output किया जाता है और Jun syntax से user input section पर jump करके game loop बनाया गया।
यानी runtime पर search या calculation नहीं की जाती; सिर्फ पहले से generated conditionals execute होते हैं। इसलिए यह optimized तो नहीं है, लेकिन Tic-tac-toe AI implement करना संभव हुआ।

GitHub पर Ryugod site से सीधे play करने का तरीका भी छोड़ रखा है।

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.