Como fazer um jogo Tic Tac Toe em Python com exemplo de código
Jogo Tic Tac Toe em Python é um projeto interessante que você pode tentar. É um projeto legal e divertido de resolver um desafio e pode ajudá-lo a dominar conceitos básicos em Python. Criar um divertido jogo da velha 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 Tic Toc?
O jogo Tic tac toe é um jogo simples para dois jogadores que qualquer um pode jogar sem precisar de um tabuleiro de jogo. Envolve dois jogadores marcando células diferentes até que o jogo termine, em caso de vitória ou empate.
Veja como jogar o jogo da velha.
Passo 1) O jogo da velha começa com células vazias em uma grade quadrada. Este é o 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 atual marca em turnos preenchendo as células do tabuleiro do jogo da velha até que um jogador preencha uma combinação vencedora. É uma linha, coluna ou diagonal inteira com o mesmo sinal.
Passo 4) Um empate no jogo também é possível caso todas as células estejam cheias sem nenhum vencedor aparente
Requisitos
Construindo o jogo da velha Python projeto requer uma compreensão de nível iniciante Python linguagem de programação. Inclui a compreensão de loops e iterações “for” e qual instrução if é usada em Python.
Você também precisa ter Python e de um Python editor de texto instalado no seu computador para completar o jogo da velha Python projeto. Como este é um jogo da velha para iniciantes em Python, você não precisará de nenhum Python biblioteca.
Você pode precisar de algumas habilidades de depuração para encontrar soluções para bugs em seu código e também deve ter um conhecimento adequado dos componentes do jogo.
Tic Tac Toe Python Algoritmo
Siga estas etapas 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 Tic tac toe 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) Termine 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 Saída de código
Depois de executar o código-fonte acima, abaixo está a saída esperada para um jogo da velha 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):
Detalhamento completo do código
Criar jogo da velha em Python é simples. Vamos dissecar as diferentes funções em partes para entender o que está acontecendo em cada linha:
Imprimindo o quadro
O tabuleiro Tic tac toe é a tela principal do jogo. Em, Python janela de exibição é usada para mostrar o tabuleiro do jogo.
Aqui estão as etapas que ajudam você a criar um tabuleiro para o 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)
Saída de código:
------------ 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
- 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, é óbvio que todos os elementos dessa linha sã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 fica mais simples. Sempre estaremos comparando as células nas diagonais. Porém, 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.
Conclusão
- Tic tac toe é um jogo divertido para dois jogadores, colocando um símbolo único em uma célula vazia do tabuleiro.
- Criando um jogo da velha em Python requer uma compreensão de nível iniciante Python, um editor de texto e Python instalado.
- O algoritmo ajuda você a escrever sistematicamente o código em qualquer linguagem.
- Para criar o jogo, primeiro desenhe o tabuleiro e escreva o código para determinar os arranjos vencedores e perdedores.
- Você pode testar o código do jogo da velha em Python jogando primeiro.