Pedra, Papel e Tesoura em Python contra o Computador
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 Code, PyCharm 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.
O Pedra, Papel e Tesoura em Python é um projeto simples, divertido e perfeito para iniciantes praticarem lógica de programação.

Comentários
Postar um comentário