Skip to content

rockoak/mora

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

棒子老虎雞蟲遊戲開發 Prompt

任務描述

請使用 Python 開發一個「棒子老虎雞蟲」猜拳遊戲,這是一個台灣傳統的猜拳遊戲,玩家與電腦對戰。

遊戲規則

遊戲包含四個元素,勝負關係如下:

  • 🥢 棒子 打敗 🐯 老虎
  • 🐯 老虎 吃掉 🐓 公雞
  • 🐓 公雞 啄食 🐛 蟲子
  • 🐛 蟲子 蛀壞 🥢 棒子

形成一個循環的勝負關係。

功能需求

1. 選項設計

  • 玩家可以選擇 1-4 對應四個元素
  • 新增選項 0 用於離開遊戲
  • 輸入範圍:0-4

2. 遊戲流程

  • 玩家輸入選擇(0-4)
  • 如果輸入 0,顯示統計資料後離開程式
  • 如果輸入 1-4,電腦隨機選擇一個元素
  • 立即顯示雙方選擇和勝負結果
  • 勝負或平手後直接繼續下一輪(不需要按 Enter 或詢問是否繼續)
  • 循環執行直到玩家選擇 0 離開

3. 戰績統計功能

遊戲過程中持續記錄:

  • 總共猜拳次數
  • 玩家獲勝次數
  • 電腦獲勝次數
  • 平手次數

當玩家選擇 0 離開時,顯示完整的戰績統計。

4. 輸入驗證

  • 檢查輸入是否為數字
  • 檢查數字是否在 0-4 範圍內
  • 對於無效輸入,顯示友善的錯誤訊息並重新要求輸入

5. 使用者介面

使用表情符號讓遊戲更生動:

  • 1: 🥢 棒子
  • 2: 🐯 老虎
  • 3: 🐓 公雞
  • 4: 🐛 蟲子

結果訊息:

  • 玩家獲勝:🎉 你贏了!
  • 電腦獲勝:💻 電腦贏了!
  • 平手:🤝 平手!

技術要求

  1. 程式語言:Python 3
  2. 使用模組:僅使用標準函式庫(random)
  3. 資料結構
    • 使用字典存儲選項對應的表情符號
    • 使用字典映射勝負關係
  4. 錯誤處理
    • 使用 try-except 處理 ValueError(非數字輸入)
    • 使用條件判斷檢查數字範圍

程式碼架構建議

import random

# 定義選項字典
choices = {1: "🥢棒子", 2: "🐯老虎", 3: "🐓公雞", 4: "🐛蟲子"}

# 定義勝負關係字典(誰贏誰)
win_map = {...}

# 主遊戲函數
def play_game():
    # 初始化計數器
    player_win = 0
    computer_win = 0
    tie_count = 0
    
    # 主遊戲迴圈
    while True:
        # 1. 取得使用者輸入(含錯誤處理)
        # 2. 如果輸入 0,顯示統計並離開
        # 3. 電腦隨機選擇
        # 4. 判斷勝負
        # 5. 更新計數器
        # 6. 直接繼續(不需要詢問或等待)

# 執行遊戲
play_game()

輸出範例

請選擇 (0.離開 1.🥢棒子 2.🐯老虎 3.🐓公雞 4.🐛蟲子): 1
你選擇: 🥢棒子,電腦選擇: 🐯老虎
🎉 你贏了!
請選擇 (0.離開 1.🥢棒子 2.🐯老虎 3.🐓公雞 4.🐛蟲子): 2
你選擇: 🐯老虎,電腦選擇: 🥢棒子
💻 電腦贏了!
請選擇 (0.離開 1.🥢棒子 2.🐯老虎 3.🐓公雞 4.🐛蟲子): 3
你選擇: 🐓公雞,電腦選擇: 🐓公雞
🤝 平手!
請選擇 (0.離開 1.🥢棒子 2.🐯老虎 3.🐓公雞 4.🐛蟲子): 0

📊 遊戲結束,戰績統計:
🎮 總共猜拳 3 次
✅ 你贏了 1 次
💻 電腦贏了 1 次
🤝 平手 1 次
👋 謝謝遊玩!

錯誤處理範例

請選擇 (0.離開 1.🥢棒子 2.🐯老虎 3.🐓公雞 4.🐛蟲子): 5
⚠️ 輸入錯誤,請選擇 0-4

請選擇 (0.離開 1.🥢棒子 2.🐯老虎 3.🐓公雞 4.🐛蟲子): abc
⚠️ 請輸入數字 0-4

重要提醒

  1. 不要在平手時要求按 Enter 繼續
  2. 不要在勝負後詢問「是否再玩一次」
  3. 讓遊戲流程順暢,勝負後直接進入下一輪
  4. 在玩家選擇 0 時才顯示統計並離開
  5. 使用表情符號讓介面更友善
  6. 完整記錄所有對局(包含平手)的統計

檔案命名

將程式儲存為:mora-copilot.py

測試重點

  1. 測試每種選項的勝負判定是否正確
  2. 測試平手情況是否正確計數
  3. 測試輸入 0 能否正確顯示統計並離開
  4. 測試無效輸入的錯誤處理
  5. 測試統計數字是否準確(總次數 = 玩家勝 + 電腦勝 + 平手)
  6. 測試遊戲流程是否順暢(無不必要的暫停或詢問)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages