Hur man gör ett Tic Tac Toe-spel i Python med Code Exempelvis
⚡ Smart sammanfattning
Tre på rad i Python är ett nybörjarvänligt projekt som återskapar det klassiska rutnätsspelet för två spelare. Att bygga det stärker grundläggande färdigheter som loopar, villkor, listor, funktioner och rekursion samtidigt som man kontrollerar rader, kolumner och diagonaler för att hitta en vinnare.

Tic Tac Toe Game in Python är ett intressant projekt du kan prova. Det är ett coolt och roligt projekt där du löser en utmaning och kan hjälpa dig att bemästra grundläggande koncept inom PythonAtt skapa ett roligt Tre i rad-spel hjälper dig att utveckla dina färdigheter.
Du kan använda en vara Python redaktör som till exempel PyCharm eller kommandoradsgränssnittet.
Hur man spelar Tre-i-tack-spelet?
Tre på rad är ett enkelt spel för två spelare som vem som helst kan spela utan att behöva ett spelbräde. Det går ut på att två spelare markerar olika rutor tills spelet slutar med vinst eller oavgjort.
Så här spelar du Tic Tac Toe-spelet.
Steg 1) Tre-i-rad-spelet börjar med tomma rutor i ett fyrkantigt rutnät. Detta är Tre-i-rad-brädet.
Steg 2) Båda spelarna väljer mellan två symboler, vanligtvis Xs eller Os. Du kan använda vilken annan unik symbol som helst i spelet.
Steg 3) Den nuvarande spelaren markerar i tur och ordning genom att fylla i cellerna på Tre-i-rad-brädet tills en spelare fyller en vinnande kombination. Det vill säga en hel rad, kolumn eller diagonal med samma tecken.
Steg 4) Oavgjort är också möjligt om alla rutor är fulla utan någon uppenbar vinnare.
Krav
Bygga Tre-i-rad-spelet Python projektet kräver en nybörjarkunskap om Python programmeringsspråk. Det inkluderar att förstå "for"-loopar och iterationer och vad en if-sats används till i Python.
Du måste också ha Python och en Python textredigeraren installerad på din dator för att slutföra Tre i rad Python projekt. Eftersom detta är ett nybörjarspel i Tre på rad Python, du behöver inga Python bibliotek.
Du kan behöva vissa felsökningsfärdigheter för att hitta lösningar på buggar i din kod, och du bör också ha en tillräcklig förståelse för spelets komponenter.
Tic Tac Toe Python Algoritm
Följ dessa steg för att skapa ett Tre-i-tack-spel i Python programmeringsspråk:
Steg 1) Skapa spelplanen för att starta Tre på rad-spelet.
Steg 2) Be användaren att bestämma spelplanens mått.
Steg 3) Välj den första spelaren slumpmässigt.
Steg 4) Tre-och-tack-spelet börjar.
Steg 5) Spelare spelar genom att välja en tom plats på brädet.
Steg 6) Fyll den tomma valda platsen med spelarens tecken.
Steg 7) Avgör om en spelare vinner eller får oavgjort i spelet med hjälp av spellogiken.
Steg 8) Visa spelplanen efter varje spel om ingen spelare vinner eller får oavgjort mot den andra spelaren.
Steg 9) Visa ett oavgjort respektive vinstmeddelande.
Steg 10) Avsluta Tre på rad-spelet med alternativ för att starta ett nytt spel.
full Python kod för tic tac toe
# Guru99 # Code developed by Guru99.com # Guru99 tic-tac-toe game #Get input def getInput(prompt, cast=None, condition=None, errorMessage=None): while True: try: val = cast(input(prompt)) assert condition is None or condition(val) return val except: print(errorMessage or "Invalid input.") # Print the game board def printBoard(board): print() for row in board: print(*row) print() # Check if player won using the winning combinations def checkWin(board): # Check rows for row in range(len(board)): for col in range(len(board)-1): if board[row][col] == "_" or board[row][col+1] == "_" or board[row][col] != board[row][col+1]: break else: return True # Check column numbers for col in range(len(board)): for row in range(len(board)-1): if board[row][col] == "_" or board[row+1][col] == "_" or board[row][col] != board[row+1][col]: break else: return True # Check left diagonal for cell in range(len(board)-1): if board[cell][cell] == "_" or board[cell+1][cell+1] == "_" or board[cell][cell] != board[cell+1][cell+1]: break else: return True # Check right diagonal for cell in range(len(board)-1): emptyCell = board[cell][len(board)-cell-1] == "_" or board[cell+1][len(board)-cell-2] == "_" different = board[cell][len(board)-cell-1] != board[cell+1][len(board)-cell-2] if emptyCell or different: break else: return True # No win return False # Play tic tac toe game def play(): # Introduction print("------------\nN-DIMENSIONAL TIC TAC TOE game by guru 99.com \n------------") # Set up variables N = getInput(prompt="Guru99 says>>> Enter N, the dimensions of the board: ", cast=int, condition=lambda x: x >= 3, errorMessage="Invalid input. Please enter an integer greater than or equal to 3 as explained on guru99.com") board = [['_'] * N for _ in range(N)] used = 0 turn = 0 # Play guru99 tic tac toe game in Python using while infinite loop while True: # Print guru99 tic tac toe game board printBoard(board) # Get user pick pick = getInput(prompt=f"Player {turn+1} - Pick location (row, col): ", cast=lambda line: tuple(map(int, line.split(" "))), condition=lambda pair: min(pair) >= 0 and max(pair) < N and board[pair[0]][pair[1]] == "_", errorMessage="Invalid input. Please enter a valid, unoccupied location as an integer pair.") # Populate location board[pick[0]][pick[1]] = "X" if turn == 0 else "O" used += 1 # Check for win #Guru99 tutorial if checkWin(board): printBoard(board) print(f"Game over, Player {turn+1} wins.") break # Check for tie elif used == N*N: printBoard(board) print("Game over. Players have tied the match.") print("Guru99.com tic tac toe game ") break # If no win yet, update next user turn = (turn+1)%2 # Check for rematch playAgain = getInput(prompt="Play Guru99 tic tac toe_Game again? (y/n): ", cast=str, condition=lambda ans: ans.strip("\n").lower() in {"y", "n"}, errorMessage="Invalid input. Please enter 'y' or 'n'.") if playAgain == 'n': # End the game print("\nGuru99 TicTacToe game ended.") return else: # Rematch play() # Main if __name__ == '__main__': play()
Tic Tac Toe Python Code produktion
När du har kört källkoden ovan, är nedan den förväntade utdata för en 3 x 3 Tre-i-tack-bräda:
------------ N-DIMENSIONAL TIC TAC TOE game by guru 99.com ------------ Guru99 says>>> Enter N, the dimensions of the board: 3 _ _ _ _ _ _ _ _ _ Player 1 - Pick location (row, col): 1 1 _ _ _ _ X _ _ _ _ Player 2 - Pick location (row, col): 0 1 _ O _ _ X _ _ _ _ Player 1 - Pick location (row, col): 1 2 _ O _ _ X X _ _ _ Player 2 - Pick location (row, col): 0 2 _ O O _ X X _ _ _ Player 1 - Pick location (row, col): 1 0 _ O O X X X _ _ _ Game over, Player 1 wins. Play Guru99 tic tac toe_Game again? (y/n):
full Code Fördelning
Skapa Tre på rad i Python är enkelt. Låt oss analysera de olika funktionerna i bitar för att förstå vad som händer för varje rad:
Skriva ut tavlan
Tre-i-rad-brädet är spelets huvudsakliga display. I Python, ett visningsfönster används för att visa spelplanen.
Här är stegen som hjälper dig att skapa en bräda för Tre på sönder-i-ett-spel. Python:
Python kod för Tic Tac Toe
def getInput(prompt, cast=None, condition=None, errorMessage=None): while True: try: val = cast(input(prompt)) assert condition is None or condition(val) return val except: print(errorMessage or "Invalid input.") # Print the board def printBoard(board): print() for row in board: print(*row) print() N = getInput(prompt="Guru99 says>>> Enter N, the dimensions of the board: ", cast=int, condition=lambda x: x >= 3, errorMessage="Invalid input. Please enter an integer greater than or equal to 3 as explained on guru99.com") board = [['_'] * N for _ in range(N)] used = 0 turn = 0 printBoard(board)
Code produktion:
------------ N-DIMENSIONAL TIC TAC TOE game by guru 99.com ------------ Guru99 says>>> Enter N, the dimensions of the board: 3 _ _ _ _ _ _ _ _ _
Tic Tac Toe Game – vinnande arrangemang
För att kontrollera om någon spelare vann måste vi kontrollera de vinnande kombinationerna över raderna, kolumnerna och diagonalerna. Om det finns en vinnare måste vi visa ett vinnande meddelande.
rader
- För raden tar funktionen varje på varandra följande kolumnpar och kontrollerar efter en vinnande kombination.
- Den första spelaren som fyller raderna vinner. Den andra spelaren förlorar därmed.
- Om ett par på varandra följande kolumner är likadana, är det uppenbart att alla element inom den raden är likadana.
- Om två av dem är olika eller om raden innehåller en tom cell, finns det fortfarande ingen vinnare.
- Vi implementerar sedan förlorande förutsättningar och lägger till en paus. Om något av dessa förlustvillkor är sant, hade vi ingen vinnare i den markerade raden.
- Det andra uttalandet ger en sann avkastning för att visa att det finns en vinnare.
- Pausen bryter ut ur denna slinga för att fortsätta till nästa rad.
Kolonner
För kolumnerna upprepar vi samma funktion som i rader. Vi kontrollerar om en spelare vunnit efter att varje spelare valt sin plats.
Diagonal rad vinner
För den vänstra diagonalen blir uppgiften enklare. Vi kommer alltid att jämföra cellerna i diagonalerna. Men om det inte finns någon vinnare kan vi gå vidare till nästa instruktion.
Spela spellogik
Detta är spelets huvudfunktion. För detta kan vi använda variabler som lagrar information.
- Den första variabeln är kortstorleken lagrad i "N". Spelet kommer att få brädets storlek efter att ha bett användaren att ange ett nummer.
- Så när du anger värdet bearbetas det.
- Vi skapar också ett felmeddelande för att visa spelarna när något ogiltigt nummer skrivs in.
- Vi kan sedan skapa två variabler som fyller i ett "X" eller ett "O" när en cell är fylld.
- Visa sedan spelarna spelplanen. Efter detta, få spelarens input.
- Logiken kommer då att markera den valda cellen som ifylld och kontrollera efter vinst eller oavgjort.
- Om det inte finns någon vinnare, ber spelet nästa spelare att spela. Om det blir vinst eller oavgjort kan spelet fråga användarna om de vill ha ett nytt spel.
