शतरंज के कितने संभावित कदम हैं?
मानक प्रारंभिक स्थिति से शुरू, इस और सभी संभावित निम्नलिखित पदों में कितने संभावित कानूनी शतरंज चालें हैं?
कहते हैं, शुरुआती स्थिति को अनदेखा करते हुए, एक बिशप 32 वर्गों में जा सकता है (लेकिन अन्य 32 को कवर करता है), 64 को एक बदमाश, यदि दोनों पक्षों को ध्यान में रखा जाता है, तो प्यादे सभी 64 वर्गों, एक शूरवीर , राजा तक भी पहुंच सकते हैं। रानी सभी 64 पदों पर भी पहुँच सकती हैं।
तो कुल मिलाकर, 384 कुल चाल लक्ष्य-वर्ग + टुकड़ा संयोजन होना चाहिए। क्या यह सही है?
लेकिन शुरुआती स्थिति को नजरअंदाज नहीं किया जाता है तो चालों की संख्या क्या है?
फिर, 16 प्यादा डबल-स्टेप एडवांस जोड़े जाने होंगे, साथ ही 4 कास्टलिंग मूव्स (2, क्वीन और किंग्साइड अपने खिलाड़ी के लिए)। और एन पास, जो दोनों खिलाड़ियों के लिए 7 बाएं और 7 दाएं, 2 गुना होना चाहिए। और सभी अन्य टुकड़ों के सभी संभावित स्रोत-लक्षित वर्ग संयोजन!
जवाब
श्वेत राजा आंतरिक 36 क्षेत्रों से 8 क्षेत्रों में, 4 कोने के खेतों से 4 क्षेत्रों और शेष 24 सीमा क्षेत्रों से 5 क्षेत्रों में जा सकता है। यह सफेद राजा के लिए 420 की चाल है, 422 पर पहुंचने के लिए कास्टिंग के लिए 2 जोड़ दें। यदि आप कैप्चर को अलग करते हैं, तो यह लगभग दोगुना हो जाता है (कास्टलिंग 842 पर कब्जा नहीं कर सकता)। अब काले राजा को इसे दोगुना करने की अनुमति दें (1684)? या उन चालों की पहचान करें जो वे कर सकते हैं (यानी, सभी लेकिन कास्टलिंग - 844)?
एक बदमाश हमेशा (दृष्टि की नि: शुल्क लाइन दी गई) 14 चौकों पर जा सकता है। वह 896 चाल है। यदि आप कैप्चर को भेद करते हैं तो डबल से 1792। यदि आप रंग भेद करना चाहते हैं तो फिर से डबल (3584) करें।
लंबाई n के एक विकर्ण (NW से SE, कहते हैं) पर एक बिशप n ( n -1) चाल (एक आरंभ क्षेत्र और एक अलग अंत क्षेत्र उठा सकता है) बना सकता है। से अधिक का योग n = 1,2,3,4,5,6,7,8,7,6,5,4,3,2,1 (यानी, बिशप का रंग अनदेखी) 280 चलता रहता है पर पहुंचने के लिए, डबल दोनों को विकर्ण दिशाओं को गिनने के लिए 560। डबल (1120) यदि आप कैप्चर को अलग करना चाहते हैं, तो एक बार फिर से डबल (2240) यदि आप रंग से अलग करना चाहते हैं।
रानी के लिए बस बदमाश और बिशप जोड़ें, इस प्रकार 1456, 2912, या 5824 चालें गिनें।
शूरवीर आम तौर पर 8 चालें बना सकता है, लेकिन राजा के साथ हमें पास की सीमा का हिसाब देना होगा। दिशा से गिनना आसान है: 42 (6 बाय 7) क्षेत्र हैं जहां से हम दो दाईं ओर और एक ऊपर जा सकते हैं, कहते हैं। हमारे पास सभी आठ दिशाओं के लिए एक ही संख्या 42 (हालांकि अलग-अलग क्षेत्रों के साथ) है, इसलिए कुल 336 नाइट चालें हैं। डबल (672) यदि आप कैप्चर को अलग करते हैं। डबल फिर से (1344) यदि आप रंग से अंतर करते हैं।
एक सफेद मोहरा अपनी प्रारंभिक स्थिति (8 चाल) से दो क्षेत्रों को आगे बढ़ा सकता है। यह पंक्तियों 2 से 6 (40 चाल) से एक आगे बढ़ सकता है। यह पंक्ति 7 से आगे बढ़ सकता है और रानी, रोक, बिशप, या नाइट (32 चाल) को बढ़ावा दे सकता है। प्यादों के लिए, हमें कैप्चर को अलग करना चाहिए : आठ में से केवल सात कॉलम में, हम दाईं ओर पकड़ सकते हैं, और आठ में से सात कॉलम में हम बाईं ओर कब्जा कर सकते हैं। यह हमें 2 से 6 पंक्तियों से 70 कैप्चर मूव्स देता है, साथ ही प्रमोशन के साथ 56 कैप्चर करता है। अब तक 206. यदि आप मोहरे के समान मूवमेंट (स्टार्ट एंड एंड फील्ड) द्वारा कैप्चर किए गए पास को सामान्य से अलग करना चाहते हैं, तो 220 पर पहुंचने के लिए 14 जोड़ें। फिर, कम से कम प्यादे के लिए यह खिलाड़ी द्वारा अंतर करने के लिए उपयोगी लगता है और 440 पर पहुंचें।
सारांश में, संभावित चालों की गणना का सबसे उदार तरीका 1684 + 3584 + 2240 + 5824 + 1344 + 440 = 15116 अलग-अलग चाल हो सकता है। चेक या चेकमेट देने वाली चालों को भेद कर या कैप्चर किए गए टुकड़े के अनुसार अलग-अलग होने से कोई भी अधिक संख्या बढ़ा सकता है।
यदि बोर्ड दिया गया है और केवल स्रोत और लक्ष्य वर्ग है, साथ ही पदोन्नति की पसंद ( यूसीआई प्रारूप में) माना जाता है , तो ऐसा प्रतीत होता है कि 1968 संभव कदम होंगे।
# Python
# pip install python-chess
import chess
moves = 0
# Queen, covers all lines and diagonals
for x in range(8):
for y in range(8):
board = chess.Board("8/8/8/8/8/8/8/8")
board.set_piece_at(chess.square(x,y), chess.Piece(chess.QUEEN, chess.WHITE))
moves += len(list(board.generate_legal_moves()))
# Knight jumps
for x in range(8):
for y in range(8):
board = chess.Board("8/8/8/8/8/8/8/8")
board.set_piece_at(chess.square(x,y), chess.Piece(chess.KNIGHT, chess.WHITE))
moves += len(list(board.generate_legal_moves()))
# Straight pawn promotions, 2 players, 8 ranks each, 4 choices (queen, rook, bishop, knight)
moves += 2*8*4
# Diagonal pawn promotions, when capturing a piece
# 2 players, 14 diagonals (12 in the center and 1 each in the first and last ranks), 4 choices
moves += 2*14*4
print(moves)
राजा को दो चरणों में आगे बढ़ने का संकेत दिया जाता है।
यहां सभी संभव UCI स्ट्रिंग्स हैं और यहां उन्हें जनरेट करने के लिए कोड है।