Python 剪刀石头布游戏

使用 Python 创建剪刀石头布游戏。掌握随机选择、用户输入验证和关系规则映射。

在编辑器中尝试

概述

石头剪刀布是标准的游戏逻辑挑战。它需要根据特定的游戏规则验证输入并确定获胜者。

我们可以使用映射字典来实现规则,而不是编写繁琐的多层 if/else 梯子。这是高度可扩展的,允许轻松扩展规则(例如,添加 Lizard 和 Spock)。

该脚本从标准选择中随机选择,将其与玩家的选择进行比较,并打印结果(包括分数更新)。

代码和执行输出

石头剪刀布脚本,说明字典规则匹配和随机模块。

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:”循环内,并在玩家输入“退出”时中断执行。

相关主题