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:」迴圈內,並在玩家輸入「退出」時中斷執行。

相關主題