Pedra, Papel e Tesoura em Python contra o Computador

O clássico Pedra, Papel e Tesoura é um dos jogos mais conhecidos e simples do mundo.

Ele também é um excelente projeto para iniciantes em Python, pois envolve:

  • Entrada de dados do usuário.

  • Uso de listas e escolhas aleatórias.

  • Estruturas condicionais (if/elif/else).

  • Laços de repetição para jogar várias rodadas.

  • Criação de funções para organizar o código.

Neste artigo, vamos criar passo a passo um jogo de Pedra, Papel e Tesoura contra o computador no terminal em Python.


🔹 1. Regras do jogo

  • Pedra vence Tesoura.

  • Tesoura vence Papel.

  • Papel vence Pedra.

  • Se ambos escolherem o mesmo, o jogo empata.


🔹 2. Preparando o ambiente

Abra seu editor favorito (VS CodePyCharm ou até o IDLE do Python) e crie um arquivo chamado:

pedra_papel_tesoura.py

🔹 3. Importando bibliotecas

Vamos usar o módulo random para o computador escolher sua jogada.

import random

🔹 4. Lista de opções

As opções do jogo podem ser representadas em uma lista:

opcoes = ["pedra", "papel", "tesoura"]

🔹 5. Estrutura básica do jogo

O jogador digita sua escolha e o computador escolhe aleatoriamente.

# Escolha do jogador
jogador = input("Digite pedra, papel ou tesoura: ").lower()

# Escolha do computador
computador = random.choice(opcoes)

print("Você escolheu:", jogador)
print("Computador escolheu:", computador)

🔹 6. Definindo quem ganha

Agora criamos a lógica que compara as jogadas:

if jogador == computador:
    print("Empate!")
elif (jogador == "pedra" and computador == "tesoura") or \
     (jogador == "tesoura" and computador == "papel") or \
     (jogador == "papel" and computador == "pedra"):
    print("Você venceu! 🎉")
else:
    print("Computador venceu! 🤖")

🔹 7. Colocando tudo em uma função

Vamos organizar o código em uma função chamada jogar():

import random

def jogar():
    opcoes = ["pedra", "papel", "tesoura"]
    
    jogador = input("Digite pedra, papel ou tesoura: ").lower()
    
    if jogador not in opcoes:
        print("⚠️ Opção inválida! Tente novamente.")
        return
    
    computador = random.choice(opcoes)
    
    print(f"\nVocê escolheu: {jogador}")
    print(f"Computador escolheu: {computador}\n")
    
    if jogador == computador:
        print("Empate!")
    elif (jogador == "pedra" and computador == "tesoura") or \
         (jogador == "tesoura" and computador == "papel") or \
         (jogador == "papel" and computador == "pedra"):
        print("✅ Você venceu!")
    else:
        print("❌ Computador venceu!")

🔹 8. Loop para jogar várias rodadas

Vamos deixar o jogo mais divertido com várias rodadas e placar.

import random

def jogar():
    opcoes = ["pedra", "papel", "tesoura"]
    placar_jogador = 0
    placar_computador = 0
    
    while True:
        jogador = input("\nDigite pedra, papel ou tesoura (ou 'sair' para encerrar): ").lower()
        
        if jogador == "sair":
            print("\n🔚 Jogo encerrado!")
            print(f"Placar final: Você {placar_jogador} x {placar_computador} Computador")
            break
        
        if jogador not in opcoes:
            print("⚠️ Opção inválida! Tente novamente.")
            continue
        
        computador = random.choice(opcoes)
        
        print(f"\nVocê escolheu: {jogador}")
        print(f"Computador escolheu: {computador}")
        
        if jogador == computador:
            print("Empate!")
        elif (jogador == "pedra" and computador == "tesoura") or \
             (jogador == "tesoura" and computador == "papel") or \
             (jogador == "papel" and computador == "pedra"):
            print("✅ Você venceu esta rodada!")
            placar_jogador += 1
        else:
            print("❌ Computador venceu esta rodada!")
            placar_computador += 1
        
        print(f"📊 Placar: Você {placar_jogador} x {placar_computador} Computador")

# Executar o jogo
if __name__ == "__main__":
    jogar()

🔹 9. Melhorias possíveis

Esse jogo já funciona muito bem, mas podemos expandir:

✅ Adicionar emojis para deixar divertido ().
✅ Melhorar validação de entrada, aceitando abreviações como "p" para pedra.
✅ Adicionar níveis de dificuldade (computador pode "roubar" em modo difícil).
✅ Modo campeonato – melhor de 3 ou melhor de 5.
✅ Interface gráfica (GUI) usando tkinter ou até versão web com Flask.


🔹 10. Conclusão

Neste artigo, você aprendeu a:

  • Usar listas e escolha aleatória com random.choice.

  • Trabalhar com entrada de dados e validação.

  • Implementar condições de vitória e empate.

  • Criar loops para jogar várias rodadas com placar.

Pedra, Papel e Tesoura em Python é um projeto simples, divertido e perfeito para iniciantes praticarem lógica de programação.

Comentários

Postagens mais visitadas deste blog

Gerando Relatórios em PDF com Python (ReportLab e FPDF)

Manipulação de Arquivos no C#: Como Ler, Escrever e Trabalhar com Arquivos de Forma Simples

Laços de Repetição em Python: Conceitos e Exemplos Práticos