Jogo Python Rock Paper Scissors
Crie um jogo Pedra-Papel-Tesoura em Python. Domine escolhas aleatórias, validação de entradas do usuário e mapeamentos de regras relacionais.
Visão geral
Rock-Paper-Scissors é um desafio lógico de jogo padrão. Requer a verificação das informações em relação às regras específicas do jogo e a determinação de um vencedor.
Em vez de escrever tediosas escadas if/else de múltiplas camadas, podemos implementar regras usando um dicionário de mapeamento. Isso é altamente escalonável, permitindo fácil expansão de regras (por exemplo, adicionando Lizard e Spock).
O script escolhe aleatoriamente entre as escolhas padrão, compara com a escolha do jogador e imprime os resultados, incluindo atualizações de pontuação.
Saída de código e execução
Um script Rock Paper Scissors ilustrando correspondência de regras de dicionário e módulos aleatórios.
import random
def get_winner(player, computer):
if player == computer:
return "tie"
# Dictionary mapping choice -> what it beats
winning_rules = {
"rock": "scissors",
"paper": "rock",
"scissors": "paper"
}
if winning_rules[player] == computer:
return "player"
return "computer"
def play_game():
choices = ["rock", "paper", "scissors"]
# Mocking player selections
player_moves = ["rock", "paper", "scissors"]
print("Rock, Paper, Scissors Game!")
# Seed generator for deterministic outputs
random.seed(11)
for player_move in player_moves:
computer_move = random.choice(choices)
winner = get_winner(player_move, computer_move)
print(f"\nPlayer chose: {player_move.capitalize()}")
print(f"Computer chose: {computer_move.capitalize()}")
if winner == "tie":
print("Result: It is a Tie!")
elif winner == "player":
print("Result: Player Wins!")
else:
print("Result: Computer Wins!")
play_game()Rock, Paper, Scissors Game!
Player chose: Rock
Computer chose: Scissors
Result: Player Wins!
Player chose: Paper
Computer chose: Paper
Result: It is a Tie!
Player chose: Scissors
Computer chose: Rock
Result: Computer Wins!Implementação passo a passo
- Matrizes de verificação de regras decisivas
- Mecanismos seletores de números aleatórios
- Projetos educacionais de lógica de fluxo de controle
Perguntas frequentes
Como posso estender isso para Pedra-Papel-Tesoura-Lagarto-Spock?
Simplesmente expanda o mapeamento do dicionário `winning_rules` para que cada chave aponte para uma lista de elementos que ela vence. Por exemplo, `'pedra': ['tesoura', 'lagarto']`.
Como faço para que o jogo rode infinitamente até o usuário sair?
Envolva a lógica de interação dentro de um loop `while True:` e interrompa a execução se o jogador inserir 'quit'.
Tópicos Relacionados
Execute um jogo terminal Tic-Tac-Toe em Python. Aprenda o gerenciamento do estado da placa, alterne as curvas e ganhe verificações de condições.
Implementação do jogo Python HangmanCrie e execute um jogo Hangman em Python. Explore a verificação de conjuntos de caracteres, contadores de tentativas restantes e substituição de strings de palavras ocultas.