Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
📘 Lesson  ·  Lesson 63

Tic-Tac-Toe Game

हम क्या बना रहे हैं

Tic Tac Toe एक classic 3x3 game है जहाँ दो players बारी-बारी X और O रखते हैं, तीन एक line में लाने की कोशिश करते हुए। यह बढ़िया project है क्योंकि यह board, turns, input और winner जाँच जोड़ता है — सब core कौशल। हम इसे चरण-दर-चरण बनाएँगे।

💡 योजना: board store करो, दिखाओ, move लो, players switch करो, winner जाँचो, दोहराओ।

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])
1 | 2 | 3
---------
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 होता है?
एक सरल तरीका 9 items की list है जो 3x3 grid दर्शाती है, खाली spots को 1-9 numbers से और players के move पर उन्हें "X" या "O" से बदलकर। list की list (rows) भी चलती है और grid आकार से मेल खाती है।
कैसे जाँचूँ कौन जीता?
सभी 8 winning lines जाँचिए — 3 rows, 3 columns और 2 diagonals। अगर किसी line की तीनों cells में एक जैसा non-empty mark हो, वो player जीता। यह जाँच हर move के बाद चलती है।
Players बारी कैसे लेते हैं?
मौजूदा player ("X" या "O") के लिए एक variable रखिए और हर valid move के बाद उसे switch कीजिए। आम trick है player = "O" if player == "X" else "X" दोनों के बीच flip करने को।
Draw कैसे पहचानूँ?
अगर सभी 9 spots भर जाएँ और कोई न जीता हो, तो draw है। पहले winner जाँचिए; कोई न हो और board भरा हो, तो tie घोषित कीजिए।
Game को दोहराने या AI जोड़ने का तरीका?
Game को ऐसे loop में लपेटिए जो दोबारा खेलने को पूछे। सरल computer opponent को पहला खाली spot, या random चुनवाइए; smarter AI minimax algorithm इस्तेमाल करता है।
← Back to Python Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicText to Speech आपकी प्रगति: 63 / 66 (95%) · Lesson 64 / 66 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें