Python 剪刀石头布游戏
使用 Python 创建剪刀石头布游戏。掌握随机选择、用户输入验证和关系规则映射。
概述
石头剪刀布是标准的游戏逻辑挑战。它需要根据特定的游戏规则验证输入并确定获胜者。
我们可以使用映射字典来实现规则,而不是编写繁琐的多层 if/else 梯子。这是高度可扩展的,允许轻松扩展规则(例如,添加 Lizard 和 Spock)。
该脚本从标准选择中随机选择,将其与玩家的选择进行比较,并打印结果(包括分数更新)。
代码和执行输出
石头剪刀布脚本,说明字典规则匹配和随机模块。
rps.py
在编辑器中尝试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!逐步实施
- 决定性规则验证矩阵
- 随机数选择器引擎
- 教育控制流逻辑项目
常见问题解答
我如何将其扩展到石头剪刀布蜥蜴史波克?
只需扩展“winning_rules”字典映射,以便每个键都指向它击败的元素列表。例如,`'岩石':['剪刀','蜥蜴']`。
如何让游戏无限运行直到用户退出?
将交互逻辑包装在“while True:”循环内,并在玩家输入“退出”时中断执行。