Script do jogo Python Tic-Tac-Toe

Execute um jogo terminal Tic-Tac-Toe em Python. Aprenda o gerenciamento do estado da placa, alterne as curvas e ganhe verificações de condições.

Experimente no Editor

Visão geral

Construir um jogo de Tic-Tac-Toe é um exercício clássico que reforça a representação de estado do quadro matricial, estruturas de loop e lógica de comparação condicional.

O tabuleiro é representado como uma matriz 3x3 (ou uma lista simples de 9 elementos). Dois jogadores se revezam colocando seus símbolos ('X' ou 'O') na grade. Após cada movimento, o script verifica se um jogador possui três símbolos correspondentes em uma linha, coluna ou diagonal.

Esta implementação inclui um loop de jogo que alterna os estados ativos dos jogadores, aceita posicionamentos coordenados e para automaticamente quando uma condição de vitória ou empate é encontrada.

Saída de código e execução

Um mecanismo de jogo Tic-Tac-Toe de linha de comando totalmente funcional executando uma sessão simulada.

tic_tac_toe.py
Experimente no Editor
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()
Saída 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!

Implementação passo a passo

  • Loops interativos de interface de linha de comando
  • Protótipos simples de roteamento minimax de inteligência artificial
  • Aprendendo mapeamentos de coordenadas de matriz de lista 2D

Perguntas frequentes

Como posso jogar contra o computador?

Para implementar um oponente de IA, você pode usar o módulo `random` do Python para selecionar slots livres no tabuleiro ou usar o algoritmo Minimax para criar um oponente imbatível.

Como faço para limpar a tela do terminal entre turnos?

Você pode importar `os` e chamar `os.system('cls' if os.name == 'nt' else 'clear')` para limpar as viewports padrão do terminal.

Tópicos Relacionados