Guión del juego Python Tic-Tac-Toe

Ejecute un juego de terminal Tic-Tac-Toe en Python. Aprenda a administrar el estado de la placa, cambiar de turno y ganar verificaciones de condición.

Pruébelo en el editor

Descripción general

Crear un juego de Tic-Tac-Toe es un ejercicio clásico que refuerza la representación del estado del tablero matricial, las estructuras de bucle y la lógica de comparación condicional.

El tablero se representa como una matriz de 3x3 (o una lista plana de 9 elementos). Dos jugadores se turnan para colocar sus símbolos ('X' u 'O') en la cuadrícula. Después de cada movimiento, el script comprueba si un jugador tiene tres símbolos iguales en una fila, columna o diagonal.

Esta implementación incluye un bucle de juego que cambia los estados activos del jugador, acepta ubicaciones de coordenadas y se detiene automáticamente una vez que se encuentra una condición de victoria o empate.

Código y salida de ejecución

Un motor de juego Tic-Tac-Toe de línea de comandos completamente funcional que ejecuta una sesión simulada.

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()
Salida terminal
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!

Implementación paso a paso

  • Bucles interactivos de interfaz de línea de comando
  • Prototipos simples de enrutamiento minimax de inteligencia artificial
  • Aprendizaje de asignaciones de coordenadas de matrices de listas 2D

Preguntas frecuentes

¿Cómo puedo jugar contra la computadora?

Para implementar un oponente de IA, puedes usar el módulo "aleatorio" de Python para seleccionar espacios libres en el tablero, o usar el algoritmo Minimax para crear un oponente imbatible.

¿Cómo borro la pantalla del terminal entre turnos?

Puede importar `os` y llamar a `os.system('cls' if os.name == 'nt' else 'clear')` para borrar las ventanas gráficas estándar del terminal.

Temas relacionados