Este tutorial de jogo simples ajudará você a praticar os fundamentos da programação em Python.
Criar um jogo "Pedra, Papel e Tesoura" em Python é uma ótima maneira de aprimorar suas habilidades de programação. Você pode criar o jogo com um único script Python e jogá-lo na linha de comando.
O jogo começa pedindo ao jogador que escolha: "pedra", "papel" ou "tesoura". Em seguida, espera que eles insiram sua resposta. Você pode jogar contra um jogador de "computador", que selecionará automaticamente seu movimento.
O jogo também pode incluir muitas rodadas. Portanto, mesmo que você perca a primeira rodada, ainda pode tentar vencer duas das três!
Como configurar o jogo e pedir ao jogador que jogue
Quando o jogo começa, o programa Python deve pedir ao jogador para inserir "pedra", "papel" ou "tesoura" e receber a resposta do jogador. Para configurar um novo jogo, comece criando um novo arquivo Python com uma extensão .py.
O código completo para este tutorial está disponível em um repositório GitHub.
- Crie um novo arquivo chamado RockPaperScissors.py.
- Abra o novo arquivo Python usando qualquer editor de texto, como Notepad++ ou Visual Studio Code.
- Na parte superior do arquivo, importe o módulo aleatório. Você usará isso mais tarde no jogo para selecionar aleatoriamente um movimento para a vez do computador.
importar aleatório
- Apresente uma mensagem ao jogador, pedindo-lhe para inserir pedra, papel ou tesoura.
escolha do usuario = input("Pedra, papel ou tesoura? ").mais baixo()
- Inicialize uma matriz chamada "moveOptions" que armazena uma lista dos movimentos disponíveis que você ou o computador podem executar.
moverOpções = ['pedra', 'papel', 'tesoura']
- Quando o jogador inserir uma entrada, valide-a para garantir que seja uma das jogadas disponíveis. Assim que o jogador inserir uma jogada válida, imprima uma mensagem de confirmação.
enquanto (usuárioEscolha não em moverOpções):
escolha do usuario = input("Escolha inválida. Deve ser pedra, papel ou tesoura: ").mais baixo()
imprimir("")
imprimir(f"Você escolheu {userChoice}.")
Como se revezar com o computador e comparar movimentos
Depois de inserir seu movimento, o computador fará sua vez selecionando aleatoriamente "pedra", "papel" ou "tesoura". O jogo terá que comparar sua jogada com a jogada do computador para determinar quem ganhou.
- Use o módulo aleatório para fazer com que o computador selecione aleatoriamente na lista de movimentos disponíveis.
computerChoice = random.choice (moveOptions)
imprimir(f"O computador escolheu {escolha do computador}.") - Você precisará comparar sua jogada com a jogada do computador para determinar quem ganhou. Você pode fazer isso criando um novo dicionário. Este dicionário contém cada movimento (por exemplo, "pedra") e qual movimento ele ganha ou perde (por exemplo, "pedra" vence "tesoura" e perde para "papel").
movimentos = {
'pedra': { 'batidas': 'tesoura', 'perdePara': 'papel' },
'tesoura': { 'batidas': 'papel', 'perdePara': 'pedra' },
'papel': { 'batidas': 'pedra', 'perdePara': 'tesoura' },
} -
Use a instrução if do Python para verificar se a sua jogada e a jogada do computador resultam em empate. Caso contrário, use o dicionário de movimentos para comparar o movimento do jogador com o movimento do computador.
Por exemplo, se você escolher "rock", então o valor de moves[userChoice]['beats'] seria "scissors". Se a escolha do computador foi "tesoura", isso significa que seu movimento superou o deles.if userChoice == computerChoice:
imprimir(f"Você e o computador escolheram {userChoice}. É um empate!")
outro:
se (move [userChoice]['batidas'] == escolha do computador):
imprimir(f"{userChoice} batidas {escolha do computador}. Você ganha!")
se (move [userChoice]['perdePara'] == escolha do computador):
imprimir(f"{userChoice} perde para {escolha do computador}. O computador vence!")
Como manter a pontuação entre o jogador e o computador entre várias rodadas
Você também pode adicionar rodadas adicionais, onde você e o computador fazem três turnos cada.
Depois que você e o computador escolherem pedra, papel ou tesoura, o jogo perguntará novamente e acompanhará suas pontuações. A pontuação do jogador aumenta com base em quem venceu aquela rodada específica.
- O código atual representa uma única rodada de turnos feita pelo jogador e pelo computador. Adicione todo o código atual, exceto a instrução de importação dentro de uma nova função turn(). Você também pode alterar as mensagens de saída de acordo, para dizer "Você venceu esta rodada" em vez de "Você venceu":
defvez():
escolha do usuario = input("Pedra, papel ou tesoura? ").mais baixo()moverOpções = ['pedra', 'papel', 'tesoura']
enquanto (usuárioEscolha não em moverOpções):
escolha do usuario = input("Escolha inválida. Deve ser pedra, papel ou tesoura: ").mais baixo()imprimir("")
imprimir(f"Você escolheu {userChoice}.")computerChoice = random.choice (moveOptions)
imprimir(f"O computador escolheu {escolha do computador}.")movimentos = {
'pedra': { 'batidas': 'tesoura', 'perdePara': 'papel' },
'tesoura': { 'batidas': 'papel', 'perdePara': 'pedra' },
'papel': { 'batidas': 'pedra', 'perdePara': 'tesoura' },
}if userChoice == computerChoice:
imprimir(f"Você e o computador escolheram {userChoice}. É um empate!")
outro:
se (move [userChoice]['batidas'] == escolha do computador):
imprimir(f"{userChoice} batidas {escolha do computador}. Você ganha esta rodada!")se (move [userChoice]['perdePara'] == escolha do computador):
imprimir(f"{userChoice} perde para {escolha do computador}. O computador vence!") - O jogador e o computador têm três turnos cada. Adicione uma variável global chamada "turns" na parte superior do arquivo.
voltas = 3
- Após a função turn(), use um loop for do Python para repetir a rodada três vezes. No início de cada rodada, imprima o número da rodada. Chame a função turn() para pedir ao jogador e ao computador que façam seus movimentos naquela rodada.
para i no alcance (voltas):
imprimir("")
imprimir(f" Redondo {i+1}: ")
vez() - Para acompanhar quem ganhou cada rodada, adicione uma variável de pontuação para cada jogador, na parte superior do arquivo. Você atribuirá valores a essas variáveis dentro da função turn(), portanto, certifique-se de usá-las como variáveis globais.
pontuação do computador = 0
jogadorScore = 0defvez():
global computerScore, playerScore - Dentro da função turn(), assim que o jogador e o computador tiverem feito sua jogada, adicione um ponto à pontuação do vencedor. Modifique a instrução if para incrementar o valor da variável "playerScore" ou "computerScore".
se (move [userChoice]['batidas'] == escolha do computador):
imprimir(f"{userChoice} batidas {escolha do computador}. Você ganha esta rodada!")
pontuação do jogador += 1se (move [userChoice]['perdePara'] == escolha do computador):
imprimir(f"{userChoice} perde para {escolha do computador}. O computador vence!")
pontuação do computador += 1 - No final da função turn(), imprima uma atualização para as pontuações totais de cada jogador.
# Imprime uma atualização das pontuações totais após a rodada
imprimir("")
imprimir(f"SCOREBOARD | Pontuação do jogador: {playerScore} | Pontuação do computador: {computerScore}") - Bem no final do jogo, e após o loop for que repete as jogadas do jogador e do computador, imprima o vencedor final.
imprimir("")
if (computerScore > playerScore):
imprimir(f"O computador ganha com {computerScore} pontos!")
elif (playerScore > computerScore):
imprimir(f"Você ganha com {playerScore} pontos!")
outro:
imprimir(f"É um empate! Vocês dois ganham com {playerScore} pontos!")
Como executar o jogo
Para jogar, execute o script Python usando um terminal ou prompt de comando. Digite sua jogada e espere que o computador faça a deles. Depois de completar três rodadas, o programa exibirá o vencedor.
- Abra um prompt de comando ou terminal e navegue até a pasta onde você está armazenando seu arquivo Python.
- Use o comando python para executar o script:
PitãoPedra Papel Tesoura.py
- Jogue o jogo digitando 'pedra', 'papel' ou 'tesoura'.
Aprenda Python criando jogos
Criar jogos simples, como o jogo "Pedra, Papel e Tesoura", é uma ótima maneira de se familiarizar com os conceitos de programação. Existem muitos outros jogos divertidos que você pode criar usando Python, como um jogo de aventura baseado em texto.