Cum să faci un joc Tic Tac Toe în Python implementate cu Code Exemplu
⚡ Rezumat inteligent
Tic Tac Toe in Python este un proiect ușor de utilizat pentru începători, care recreează jocul clasic de tip grilă pentru doi jucători. Construirea acestuia consolidează abilitățile de bază, cum ar fi buclele, condiționalitățile, listele, funcțiile și recursivitatea, verificând în același timp rândurile, coloanele și diagonalele pentru a găsi un câștigător.

Jocul Tic Tac Toe în Python este un proiect interesant pe care îl poți încerca. Este un proiect interesant și distractiv de rezolvare a unei provocări și te poate ajuta să stăpânești conceptele de bază în PythonCrearea unui joc distractiv de tip „Tic Tac Toe” te ajută să-ți dezvolți abilitățile.
Puteți folosi un bun Python editor precum PyCharm sau interfața liniei de comandă.
Cum se joacă jocul 0 și 0?
Tic Tac Toe este un joc simplu pentru doi jucători, pe care oricine îl poate juca fără a fi nevoie de o tablă de joc. Implică doi jucători care marchează câmpuri diferite până când jocul se termină cu o victorie sau o remiză.
Iată cum se joacă jocul Tic Tac Toe.
Pas 1) Jocul Tic Tac Toe începe cu celule goale într-o grilă pătrată. Aceasta este tabla Tic Tac Toe.
Pas 2) Ambii jucători aleg dintre două simboluri, de obicei X sau Os. Puteți folosi orice alt simbol unic în joc.
Pas 3) Jucătorul curent marchează pe rând completând celulele tablei de joc Tic Tac Toe până când un jucător completează o combinație câștigătoare. Adică un rând, o coloană sau o diagonală întreagă cu același semn.
Pas 4) O egalitate este posibilă și în cazul în care toate celulele sunt pline fără un câștigător aparent.
Cerinţe
Construirea degetului X și X Python proiectul necesită o înțelegere la nivel de începător a Python limbaj de programare. Include înțelegerea buclelor „for” și a iterațiilor și la ce se folosește o instrucțiune if în Python.
De asemenea, trebuie să aveți Python și Python editor de text instalat pe computer pentru a completa jocul Tic Tac Toe Python proiect. Întrucât acesta este un joc Tic Tac Toe pentru începători în Python, nu veți avea nevoie de niciun Python bibliotecă.
Este posibil să aveți nevoie de unele abilități de depanare pentru a găsi soluții la erorile din codul dvs. și ar trebui să aveți, de asemenea, o înțelegere adecvată a componentelor jocului.
Tic Tac Toe Python Algoritm
Urmați acești pași pentru a crea un joc Tic Tac Toe în Python limbaj de programare:
Pas 1) Creează tabla pentru a începe jocul Tic Tac Toe.
Pas 2) Solicitați utilizatorului să decidă cu privire la dimensiunile tablei de joc.
Pas 3) Alegeți la întâmplare primul jucător.
Pas 4) Începe jocul Tic Tac Toe.
Pas 5) Jucătorii joacă selectând un loc liber de pe tablă.
Pas 6) Umpleți locul gol selectat cu semnul jucătorului.
Pas 7) Determinați dacă un jucător câștigă sau obține o egalitate în joc folosind logica jocului.
Pas 8) Afișați tabla de joc după fiecare joc dacă niciun jucător nu câștigă sau obține o egalitate față de al doilea jucător.
Pas 9) Afișați un mesaj de egalitate sau, respectiv, de câștig.
Pas 10) Încheie jocul Tic Tac Toe cu opțiuni pentru a începe un joc nou.
Complet Python cod pentru 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 producție
După ce rulați codul sursă de mai sus, mai jos este rezultatul așteptat pentru o tablă Tic Tac Toe 3 X 3:
------------ 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):
Complet Code Defalcarea
Crearea Tic Tac Toe in Python este simplu. Să analizăm diferitele funcții pe biți pentru a înțelege ce se întâmplă pentru fiecare linie:
Imprimarea plăcii
Tabla Tic Tac Toe este principalul ecran al jocului. În Python, o fereastră de afișare este folosită pentru a afișa tabla de joc.
Iată pașii care te ajută să creezi o tablă pentru Tic Tac Toe în Python:
Python cod pentru 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 ieșire:
------------ N-DIMENSIONAL TIC TAC TOE game by guru 99.com ------------ Guru99 says>>> Enter N, the dimensions of the board: 3 _ _ _ _ _ _ _ _ _
Jocul Tic Tac Toe – aranjament câștigător
Pentru a verifica dacă vreun jucător a câștigat, trebuie să verificăm combinațiile câștigătoare pe rânduri, coloane și diagonale. Dacă există un câștigător, trebuie să arătăm un mesaj câștigător.
Rânduri
- Pentru rând, funcția ia fiecare pereche consecutivă de coloane și verifică o combinație câștigătoare.
- Câștigă primul jucător care umple rândurile. Al doilea jucător pierde astfel.
- Dacă o pereche de coloane consecutive sunt identice, atunci este evident că toate elementele din acel rând sunt identice.
- Dacă două dintre ele sunt diferite sau rândul conține o celulă goală, tot nu există câștigător.
- Apoi implementăm condiții de pierdere și adăugăm o pauză. Dacă oricare dintre aceste condiții de pierdere este adevărată, nu am avut un câștigător în rândul bifat.
- Declarația else oferă o întoarcere adevărată pentru a arăta că există un câștigător.
- Pauza iese din această buclă pentru a trece la rândul următor.
Coloane
Pentru coloane, repetam aceeasi functie ca in randuri. Verificăm dacă un jucător a câștigat după ce fiecare jucător își alege locul.
Rândul în diagonală câștigă
Pentru diagonala stângă, sarcina devine mai simplă. Vom compara întotdeauna celulele din diagonale. Totuși, în cazul în care nu există un câștigător, putem trece la următoarea instrucțiune.
Joacă logica jocului
Aceasta este funcția principală a jocului. Pentru aceasta putem folosi variabile care stochează informații.
- Prima variabilă este dimensiunea plăcii stocată în „N”. Jocul va primi dimensiunea tablei după ce va cere utilizatorului să introducă un număr.
- Deci, atunci când introduceți valoarea, aceasta este procesată.
- De asemenea, creăm un mesaj de eroare pentru a arăta jucătorilor când este introdus un număr nevalid.
- Apoi putem crea două variabile care completează un „X” sau un „O” atunci când o celulă este completată.
- Apoi arată-le jucătorilor tabla de joc. După aceasta, obțineți intrarea jucătorului.
- Logica va marca apoi celula selectată ca fiind completată și va verifica dacă există o victorie sau o remiză.
- Dacă nu există niciun câștigător, jocul îi cere următorului jucător să joace. Dacă există o victorie sau un egal, jocul poate întreba utilizatorii dacă doresc un joc nou.
