Hvordan lage et Tic Tac Toe-spill i Python med Code Eksempel
โก Smart oppsummering
Tre pรฅ rad i Python er et nybegynnervennlig prosjekt som gjenskaper det klassiske rutenettspillet for to spillere. ร bygge det styrker kjerneferdigheter som lรธkker, betingelsesvalg, lister, funksjoner og rekursjon, samtidig som det sjekker rader, kolonner og diagonaler for en vinner.

Tic Tac Toe Game i Python er et interessant prosjekt du kan prรธve. Det er et kult og morsomt prosjekt der du lรธser en utfordring, og det kan hjelpe deg med รฅ mestre grunnleggende konsepter i Pythonร lage et morsomt Tre pรฅ rad-spill hjelper deg med รฅ utvikle ferdighetene dine.
Du kan bruke en god Python redaktรธr som f.eks. PyCharm eller kommandolinjegrensesnittet.
Hvordan spille Tic Tac Toe-spillet?
Tre pรฅ rad er et enkelt spill for to spillere som alle kan spille uten รฅ trenge et spillbrett. Det innebรฆrer at to spillere markerer forskjellige ruter til spillet ender med seier eller uavgjort.
Slik spiller du Tic Tac Toe-spillet.
Trinn 1) Tre-tre-tre-spillet starter med tomme felt i et firkantet rutenett. Dette er tre-tre-tre-brettet.
Trinn 2) Begge spillerne velger mellom to symboler, vanligvis Xs eller Os. Du kan bruke et hvilket som helst annet unikt symbol i spillet.
Trinn 3) Den nรฅvรฆrende spilleren markerer etter tur ved รฅ fylle ut cellene pรฅ Tre-pรฅ-tre-brettet inntil en spiller fyller en vinnende kombinasjon. Det vil si en hel rad, kolonne eller diagonal med samme fortegn.
Trinn 4) Uavgjort er ogsรฅ mulig dersom alle feltene er fulle uten noen รฅpenbar vinner.
Krav
Bygge tre-pรฅ-tre Python prosjektet krever en forstรฅelse pรฅ nybegynnernivรฅ av Python programmeringssprรฅk. Det inkluderer forstรฅelse av ยซforยป-lรธkker og iterasjoner, og hva en if-setning brukes til i Python.
Du mรฅ ogsรฅ ha Python og en Python tekstredigeringsprogram installert pรฅ datamaskinen din for รฅ fullfรธre Tic Tac Toe Python prosjekt. Siden dette er et Tic Tac Toe-spill pรฅ nybegynnernivรฅ i Python, trenger du ikke noe Python bibliotek.
Du kan trenge noen feilsรธkingsferdigheter for รฅ finne lรธsninger pรฅ feil i koden din, og du bรธr ogsรฅ ha tilstrekkelig forstรฅelse av spillkomponentene.
Tic Tac Toe Python Algoritme
Fรธlg disse trinnene for รฅ lage et Tic Tac Toe-spill i Python programmeringssprรฅk:
Trinn 1) Lag brettet for รฅ starte Tic Tac Toe-spillet.
Trinn 2) Be brukeren om รฅ bestemme dimensjonene til spillebrettet.
Trinn 3) Velg den fรธrste spilleren tilfeldig.
Trinn 4) Tic Tac Toe-spillet starter.
Trinn 5) Spillere spiller ved รฅ velge et tomt sted pรฅ brettet.
Trinn 6) Fyll det tomme valgte stedet med spillerens tegn.
Trinn 7) Bestem om en spiller vinner eller fรฅr uavgjort i spillet ved รฅ bruke spilllogikken.
Trinn 8) Vis spillebrettet etter hvert spill hvis ingen spiller vinner eller fรฅr uavgjort til den andre spilleren.
Trinn 9) Vis henholdsvis uavgjort eller vinn-melding.
Trinn 10) Avslutt Tic Tac Toe-spillet med alternativer for รฅ starte et nytt spill.
Full Python kode for 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 produksjon
Nรฅr du har kjรธrt kildekoden ovenfor, er forventet resultat for et 3 x 3 tre-pรฅ-tre-pรฅ-tre-brett nedenfor:
------------ 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 Breakdown
Opprette Tre pรฅ rad i Python er enkelt. La oss dissekere de ulike funksjonene i biter for รฅ forstรฅ hva som skjer for hver linje:
Utskrift av brettet
Tre-tre-og-tre-brettet er hovedutstillingen i spillet. I Python, et visningsvindu brukes til รฅ vise spillbrettet.
Her er trinnene som hjelper deg med รฅ lage et brett for Tre pรฅ rad. Python:
Python kode for 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 produksjon:
------------ N-DIMENSIONAL TIC TAC TOE game by guru 99.com ------------ Guru99 says>>> Enter N, the dimensions of the board: 3 _ _ _ _ _ _ _ _ _
Tic Tac Toe Game โ vinnende arrangement
For รฅ sjekke om noen spiller vant, mรฅ vi sjekke vinnende kombinasjoner pรฅ tvers av rader, kolonner og diagonaler. Hvis det er en vinner, mรฅ vi vise en vinnermelding.
Rader
- For raden tar funksjonen hvert pรฅfรธlgende par av kolonner og sjekker for en vinnende kombinasjon.
- Den fรธrste spilleren som fyller radene vinner. Den andre spilleren taper dermed.
- Hvis et par pรฅfรธlgende kolonner er like, er det รฅpenbart at alle elementene i den raden er like.
- Hvis to av dem er forskjellige eller raden inneholder en tom celle, er det fortsatt ingen vinner.
- Vi implementerer deretter tapende forhold og legger til en pause. Hvis noen av disse tapsbetingelsene er sanne, hadde vi ingen vinner i den sjekkede raden.
- Den andre uttalelsen gir en sann avkastning for รฅ vise at det er en vinner.
- Pausen bryter ut av denne slรธyfen for รฅ fortsette til neste rad.
kolonner
For kolonnene gjentar vi samme funksjon som i rader. Vi sjekker om en spiller vant etter at hver spiller har valgt sin plass.
Diagonal rad vinner
For venstre diagonal blir oppgaven enklere. Vi kommer alltid til รฅ sammenligne cellene i diagonalene. Men hvis det ikke finnes noen vinner, kan vi gรฅ videre til neste instruksjon.
Spill spilllogikk
Dette er hovedspillets funksjon. Til dette kan vi bruke variabler som lagrer informasjon.
- Den fรธrste variabelen er brettstรธrrelsen lagret i "N". Spillet vil fรฅ brettstรธrrelsen etter รฅ ha bedt brukeren om รฅ skrive inn et tall.
- Sรฅ nรฅr du angir verdien, blir den behandlet.
- Vi lager ogsรฅ en feilmelding for รฅ vise spillerne nรฅr et ugyldig nummer er skrevet inn.
- Vi kan da lage to variabler som fyller ut en "X" eller en "O" nรฅr en celle er fylt.
- Vis deretter spillerne spillebrettet. Etter dette, fรฅ spillerens innspill.
- Logikken vil da merke den valgte cellen som fylt og se etter gevinst eller uavgjort.
- Hvis det ikke er noen vinner, ber spillet den neste spilleren om รฅ spille. Hvis det er en seier eller uavgjort, kan spillet spรธrre brukerne om de vil ha et nytt spill.
