Tic-Tac-Toe Game
हम क्या बना रहे हैं
Tic Tac Toe एक classic 3x3 game है जहाँ दो players बारी-बारी X और O रखते हैं, तीन एक line में लाने की कोशिश करते हुए। यह बढ़िया project है क्योंकि यह board, turns, input और winner जाँच जोड़ता है — सब core कौशल। हम इसे चरण-दर-चरण बनाएँगे।
Board
board = ["1", "2", "3",
"4", "5", "6",
"7", "8", "9"]
player = "X"
हम 9 cells एक list में store करते हैं। Numbers 1-9 खाली spots चिह्नित करते हैं और player को भी बताते हैं कौन-सा number चुनना है। Player move पर number को X या O से बदलता है।
Board दिखाना
def show(board):
print(board[0], "|", board[1], "|", board[2])
print("---------")
print(board[3], "|", board[4], "|", board[5])
print("---------")
print(board[6], "|", board[7], "|", board[8])
---------
4 | 5 | 6
---------
7 | 8 | 9
यह list को 3x3 grid के रूप में rows के बीच lines के साथ print करता है, ताकि players मौजूदा स्थिति देख सकें और spot को उसके number से चुन सकें।
Winner जाँचना
wins = [
(0,1,2), (3,4,5), (6,7,8), # rows
(0,3,6), (1,4,7), (2,5,8), # columns
(0,4,8), (2,4,6) # diagonals
]
def check_winner(board):
for a, b, c in wins:
if board[a] == board[b] == board[c]:
return board[a]
return None
हम सभी 8 winning lines उनकी positions से list करते हैं। अगर किसी line की तीनों cells में एक जैसा mark हो, वो mark winner है। हम इसे हर move के बाद चलाते हैं।
पूरा game loop
for turn in range(9):
show(board)
spot = int(input(player + "'s move (1-9): ")) - 1
if board[spot] in ("X", "O"):
print("Taken, try again")
continue
board[spot] = player
winner = check_winner(board)
if winner:
show(board)
print(winner, "wins!")
break
player = "O" if player == "X" else "X"
else:
print("It's a draw")
Loop 9 turns तक चलता है। हर turn board दिखाता है, move लेता है, जाँचता है खाली है, mark रखता है, winner जाँचता है, फिर players switch करता है। अगर सभी 9 बिना winner भर जाएँ, else draw print करता है।
आम गलतियाँ
- Positions पर off-by-one। Users 1-9 चुनते हैं, पर list 0-8 है — 1 घटाइए।
- Spot taken है या नहीं न जाँचना। रखने से पहले cell खाली है verify कीजिए।
- Move से पहले winner जाँचना। पहले mark रखिए, फिर जाँचिए।
- Players switch करना भूलना। valid move के बाद ही player flip कीजिए।
सारांश
- Board को 9 cells की list के रूप में store कीजिए।
- इसे 3x3 grid के रूप में दिखाइए ताकि players number से चुनें।
- 8 winning lines list कीजिए और हर move के बाद जाँचिए।
- Players switch कीजिए
player = "O" if player == "X" else "X"से। - बिना winner भरा board draw है।
आगे, logic मज़बूत कीजिए Python loops से, या code व्यवस्थित कीजिए Python functions से।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
Python में Tic Tac Toe board कैसे store होता है?
कैसे जाँचूँ कौन जीता?
Players बारी कैसे लेते हैं?
player = "O" if player == "X" else "X" दोनों के बीच flip करने को।