Como fazer um jogo Tic Tac Toe em Python com as Code Exemplo

⚡ Resumo Inteligente

Jogo da Velha em Python É um projeto para iniciantes que recria o clássico jogo de tabuleiro para dois jogadores. Construí-lo fortalece habilidades essenciais como loops, condicionais, listas, funções e recursão, enquanto verifica linhas, colunas e diagonais para encontrar um vencedor.

  • 🎮 Jogabilidade: Dois jogadores marcam X e O em uma grade quadrada até que um deles complete uma linha, coluna ou diagonal.
  • 🧩 Lógica principal: Listas aninhadas armazenam o tabuleiro, enquanto loops e condicionais controlam as jogadas e detectam uma vitória ou um empate.
  • ???? Etapas de construção: Crie o tabuleiro, escolha o primeiro jogador, receba as entradas, marque as células e, em seguida, verifique se há um vencedor em cada rodada.
  • 🔁 replay: Uma chamada recursiva à função play() reinicia a partida, e a validação de entrada bloqueia movimentos ocupados ou fora do alcance.
  • 🤖 Relevância da IA: O mesmo tabuleiro é um ambiente ideal para o algoritmo minimax e agentes de aprendizado por reforço.
  • 🛠️ Ferramentas: Preço: Python e um editor como PyCharm São necessárias; não são necessárias bibliotecas externas.

Jogo Tic Tac Toe em Python

Jogo Tic Tac Toe em Python É um projeto interessante que você pode experimentar. É um projeto legal e divertido para resolver um desafio e pode ajudá-lo a dominar conceitos básicos em PythonCriar um jogo da velha divertido ajuda você a desenvolver suas habilidades.

Você pode usar um bom Python editor como PyCharm ou a interface de linha de comando.

Como jogar o jogo da velha?

Jogo da Velha é um jogo simples para dois jogadores que qualquer pessoa pode jogar sem precisar de um tabuleiro. Consiste em dois jogadores marcando diferentes casas até que o jogo termine em vitória ou empate.

Eis como jogar o jogo da velha.

Passo 1) O jogo da velha começa com células vazias em uma grade quadrada. Este é o tabuleiro do jogo da velha.

Passo 2) Ambos os jogadores escolhem entre dois símbolos, geralmente Xs ou Os. Você pode usar qualquer outro símbolo exclusivo do jogo.

Passo 3) O jogador da vez marca preenchendo as células do tabuleiro do Jogo da Velha até que um jogador complete uma combinação vencedora. Essa combinação vencedora consiste em preencher uma linha, coluna ou diagonal inteira com o mesmo sinal.

Passo 4) Um empate também é possível caso todas as células estejam preenchidas sem um vencedor aparente.

Requisitos

Construindo o Jogo da Velha Python O projeto requer um conhecimento básico de Python linguagem de programação. Inclui a compreensão de laços "for" e iterações, e para que serve uma instrução "if" em Python.

Você também precisa ter Python e uma Python Para jogar o Jogo da Velha, você precisa ter um editor de texto instalado no seu computador. Python projeto. Como este é um jogo da velha de nível iniciante em PythonVocê não precisará de nenhum. Python biblioteca.

Você pode precisar de algumas habilidades de depuração para encontrar soluções para erros em seu código, e também deve ter um conhecimento adequado dos componentes do jogo.

Tic Tac Toe Python Algoritmo

Siga estes passos para criar um jogo da velha em Python linguagem de programação:

Passo 1) Crie o tabuleiro para começar o jogo da velha.

Passo 2) Solicite ao usuário que decida as dimensões do tabuleiro de jogo.

Passo 3) Escolha aleatoriamente o primeiro jogador.

Passo 4) O jogo da velha começa.

Passo 5) Os jogadores jogam selecionando um espaço vazio no tabuleiro.

Passo 6) Preencha o espaço vazio selecionado com o sinal do jogador.

Passo 7) Determine se um jogador ganha ou empata no jogo usando a lógica do jogo.

Passo 8) Exiba o tabuleiro de jogo após cada jogada se nenhum jogador ganhar ou empatar com o segundo jogador.

Passo 9) Exiba uma mensagem de empate ou vitória, respectivamente.

Passo 10) Encerre o jogo da velha com opções para iniciar um novo jogo.

completo Python código para jogo da velha

# 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 saída

Após executar o código-fonte acima, o resultado esperado para um tabuleiro de Jogo da Velha 3x3 é o seguinte:

------------
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):

completo Code Breakdown

Criar Jogo da Velha em Python É simples. Vamos analisar as diferentes funções em partes para entender o que está acontecendo em cada linha:

Imprimindo o quadro

O tabuleiro de Jogo da Velha é o principal visor do jogo. PythonUma janela de exibição é usada para mostrar o tabuleiro do jogo.

Aqui estão os passos que o ajudarão a criar um tabuleiro para Jogo da Velha em Python:

Python código para 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 saída:

------------
N-DIMENSIONAL TIC TAC TOE game by guru 99.com
------------
Guru99 says>>> Enter N, the dimensions of the board: 3

_ _ _

_ _ _

_ _ _

Jogo Tic Tac Toe – arranjo vencedor

Para verificar se algum jogador ganhou, precisamos verificar as combinações vencedoras nas linhas, colunas e diagonais. Se houver um vencedor, precisamos mostrar uma mensagem vencedora.

Linhas de altura

  • Para a linha, a função pega cada par consecutivo de colunas e verifica se há uma combinação vencedora.
  • O primeiro jogador a preencher as linhas vence. O segundo jogador perde assim.
  • Se um par de colunas consecutivas for igual, então é óbvio que todos os elementos dentro dessa linha também serão iguais.
  • Se dois deles forem diferentes ou a linha contiver uma célula vazia, ainda não há vencedor.
  • Em seguida, implementamos condições de perda e adicionamos uma pausa. Se alguma destas condições de derrota for verdadeira, não tivemos um vencedor na linha marcada.
  • A declaração else fornece um retorno verdadeiro para mostrar que há um vencedor.
  • A quebra sai deste loop para prosseguir para a próxima linha.

colunas

Para as colunas, repetimos a mesma função das linhas. Verificamos se um jogador ganhou depois que cada jogador escolhe seu lugar.

Vitórias na linha diagonal

Para a diagonal esquerda, a tarefa torna-se mais simples. Estaremos sempre comparando as células nas diagonais. No entanto, caso não haja vencedor, podemos prosseguir para a próxima instrução.

Jogue a lógica do jogo

Esta é a principal função do jogo. Para isso podemos utilizar variáveis ​​que armazenam informações.

  • A primeira variável é o tamanho da placa armazenado em “N”. O jogo obterá o tamanho do tabuleiro após solicitar ao usuário que insira um número.
  • Então, quando você insere o valor, ele é processado.
  • Também criamos uma mensagem de erro para mostrar aos jogadores quando algum número inválido é digitado.
  • Podemos então criar duas variáveis ​​que preenchem um “X” ou um “O” quando uma célula é preenchida.
  • Em seguida, mostre aos jogadores o tabuleiro do jogo. Depois disso, obtenha a opinião do jogador.
  • A lógica irá então marcar a célula selecionada como preenchida e verificar se há vitória ou empate.
  • Se não houver vencedor, o jogo pede ao próximo jogador para jogar. Caso haja vitória ou empate, o jogo pode perguntar aos usuários se desejam um novo jogo.

Perguntas Frequentes

Sim. O Jogo da Velha é um projeto clássico para iniciantes que transforma loops, condicionais e funções em um jogo funcional. Ele aumenta a confiança, reforça a sintaxe básica e prepara você para projetos maiores sem a necessidade de bibliotecas externas.

Ele reforça listas aninhadas para o tabuleiro, laços `for` e `while` para turnos, instruções `if` para verificar vitórias, funções para estruturar o jogo e recursão para reiniciar. Esses fundamentos são diretamente aplicáveis ​​a conceitos mais avançados. Python programas.

Sim. Além da versão para console, bibliotecas como Tkinter e Pygame adicionam botões clicáveis, uma grade desenhada e entrada de mouse. A lógica do jogo permanece a mesma; apenas as camadas de exibição e entrada mudam.

O Jogo da Velha é um jogo resolvido. Quando ambos os jogadores jogam de forma otimizada, todas as ameaças podem ser bloqueadas, de modo que ninguém consegue forçar uma vitória. É por isso que uma partida perfeita, seja entre humanos ou computadores, sempre termina em empate.

Uma versão básica para console leva de uma a três horas para um iniciante, depois que ele se familiariza com loops e condicionais. Adicionar validação de entrada, um tabuleiro escalável ou uma interface gráfica estende o projeto para um fim de semana de prática.

Substitua um jogador por uma função minimax. Ela explora recursivamente todos os movimentos possíveis, contabilizando vitórias, derrotas e empates, e então escolhe o movimento com o melhor resultado garantido. Em um tabuleiro pequeno, isso torna o computador imbatível.

Sim. Agentes de aprendizado por reforço, como o Q-learning, melhoram jogando milhares de partidas e recompensando as jogadas vencedoras. Os tabuleiros são armazenados como matrizes com NumPy, permitindo que o modelo aprenda uma estratégia quase ideal sem regras predefinidas.

Sim. O GitHub Copilot e assistentes de IA semelhantes podem gerar modelos do tabuleiro, do ciclo de turnos e das verificações de vitória a partir de um breve comando. Considere o resultado como um primeiro rascunho e, em seguida, teste você mesmo casos extremos, como empates e movimentos inválidos.

Resuma esta postagem com: