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.
