Script del gioco Tic-Tac-Toe in Python
Esegui un gioco Tic-Tac-Toe da terminale in Python. Impara la gestione dello stato del tabellone, il cambio di turno e i controlli delle condizioni di vittoria.
Panoramica
Costruire un gioco di Tic-Tac-Toe è un esercizio classico che rafforza la rappresentazione dello stato della matrice, le strutture dei cicli e la logica del confronto condizionale.
Il tabellone è rappresentato come una matrice 3x3 (o una lista piatta di 9 elementi). Due giocatori, a turno, posizionano i loro simboli ("X" o "O") sulla griglia. Dopo ogni mossa, lo script controlla se un giocatore ha tre simboli corrispondenti in una riga, colonna o diagonale.
Questa implementazione include un ciclo di gioco che cambia gli stati del giocatore attivo, accetta i posizionamenti delle coordinate e si interrompe automaticamente quando viene soddisfatta una condizione di vittoria o pareggio.
Codice e output di esecuzione
Un motore di gioco Tic-Tac-Toe a riga di comando completamente funzionale che esegue una sessione simulata.
def print_board(board):
for i in range(3):
row = " | ".join(board[i*3:(i+1)*3])
print(f" {row} ")
if i < 2:
print("---+---+---")
def check_win(board, player):
win_states = [
[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
]
return any(all(board[pos] == player for pos in state) for state in win_states)
def play_tic_tac_toe():
board = [str(i+1) for i in range(9)]
# Simulated sequence of moves (X and O alternating)
moves = [4, 0, 8, 2, 7, 6, 3]
print("Welcome to Tic-Tac-Toe!\n")
print_board(board)
print("\nSimulating Gameplay...")
current_player = 'X'
for move in moves:
if board[move] not in ['X', 'O']:
board[move] = current_player
print(f"\nPlayer {current_player} places on {move+1}:")
print_board(board)
if check_win(board, current_player):
print(f"\nPlayer {current_player} wins the game!")
return
current_player = 'O' if current_player == 'X' else 'X'
print("\nGame ends in a draw!")
play_tic_tac_toe()Welcome to Tic-Tac-Toe!
1 | 2 | 3
---+---+---
4 | 5 | 6
---+---+---
7 | 8 | 9
Simulating Gameplay...
Player X places on 5:
1 | 2 | 3
---+---+---
4 | X | 6
---+---+---
7 | 8 | 9
Player O places on 1:
O | 2 | 3
---+---+---
4 | X | 6
---+---+---
7 | 8 | 9
... (moves continue)
Player X wins the game!Implementazione passo dopo passo
- Loop interattivi dell'interfaccia della riga di comando
- Semplici prototipi di routing minimax di intelligenza artificiale
- Apprendimento delle mappature delle coordinate dell'array di elenchi 2D
Domande frequenti
Come posso giocare contro il computer?
Per implementare un avversario AI, puoi utilizzare il modulo `random` di Python per selezionare gli slot liberi sul tabellone o utilizzare l'algoritmo Minimax per creare un avversario imbattibile.
Come posso cancellare lo schermo del terminale tra un turno e l'altro?
Puoi importare `os` e chiamare `os.system('cls' if os.name == 'nt' else 'clear')` per cancellare le finestre di visualizzazione del terminale standard.
Argomenti correlati
Costruisci ed esegui un gioco dell'Impiccato in Python. Esplora il controllo dei set di caratteri, i contatori dei tentativi rimanenti e la sostituzione delle stringhe di parole nascoste.
Gioco Python Sasso Carta ForbiciCrea un gioco Sasso-Carta-Forbici in Python. Padroneggia le scelte casuali, la convalida degli input dell'utente e la mappatura delle regole relazionali.