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.

instagram viewer
  1. Crie um novo arquivo chamado RockPaperScissors.py.
  2. Abra o novo arquivo Python usando qualquer editor de texto, como Notepad++ ou Visual Studio Code.
  3. 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
  4. Apresente uma mensagem ao jogador, pedindo-lhe para inserir pedra, papel ou tesoura.
    escolha do usuario = input("Pedra, papel ou tesoura? ").mais baixo()
  5. 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']
  6. 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.

  1. 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}.")
  2. 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' },
    }
  3. 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.
    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!")
    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.

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.

  1. 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!")

  2. 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
  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()
  4. 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 = 0

    defvez():
    global computerScore, playerScore

  5. 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 += 1

    se (move [userChoice]['perdePara'] == escolha do computador):
    imprimir(f"{userChoice} perde para {escolha do computador}. O computador vence!")
    pontuação do computador += 1

  6. 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}")
  7. 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.

  1. Abra um prompt de comando ou terminal e navegue até a pasta onde você está armazenando seu arquivo Python.
  2. Use o comando python para executar o script:
    PitãoPedra Papel Tesoura.py
  3. 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.