### 完整設計範例 ```python= import random def adventure(): # 主冒險流程函式,隨機決定事件類型 global HP, saturation print("跋山涉水中...") encounter = random.randint(1, 4) # 隨機選擇事件類型 match encounter: case 1: fightEnemy() # 遇敵戰鬥 case 2: luckyFound() # 發現好東西 case 3: travel() # 長途跋涉 case 4: merchantEncounter() # 遇到商人 def fightEnemy(): # 處理與敵人的戰鬥事件 global HP, ATK, money print("前方有個可疑的生物出現,它看起來具有威脅!") enemy_attack = random.randint(1, 5) # 隨機設定敵人攻擊力 enemy_health = random.randint(3, 8) # 隨機設定敵人血量 print(f"敵人攻擊力:{enemy_attack},血量:{enemy_health}") action = input("選擇行動:戰鬥(輸入1) 或 逃跑(輸入2):") if action == "1": # 戰鬥過程 while enemy_health > 0 and HP > 0: print("你揮動武器進行攻擊!") enemy_health -= ATK # 減少敵人血量 if enemy_health <= 0: loot = random.randint(1, 6) # 隨機獲得戰利品 print(f"你打敗了敵人!獲得戰利品:金幣+{loot}") money += loot # 增加金幣 break print(f"敵人反擊!你的血量- {enemy_attack}") HP -= enemy_attack # 減少玩家血量 if HP <= 0: print("你被敵人打敗了...") break elif action == "2": # 逃跑處理 print("你匆忙逃跑,但還是被敵人狠狠砍了一刀。血量-5") HP -= 5 else: # 錯誤選擇的處罰 print("錯誤的選擇,敵人趁你猶豫時發起攻擊!血量-9") HP -= 9 def luckyFound(): # 處理發現好東西的事件 global money, HP, ATK, saturation print("前方似乎有什麼好東西!") event = random.randint(1, 3) # 隨機選擇好事事件 match event: case 1: print("你發現了一柄閃亮亮完好無損的長劍,攻擊力+1") ATK += 1 # 增加攻擊力 case 2: print("你撿到了一堆從天上掉下來的麵包,飽食度+10") saturation += 10 # 增加飽食度 case 3: print("你發現了一個裝滿金幣的寶箱,金幣+10") money += 10 # 增加金幣 def travel(): # 處理長途跋涉的事件 global saturation print("你翻越了一座險惡了高山,好累!飽食度-1") saturation -= 1 # 減少飽食度 def merchantEncounter(): # 處理與商人交易的事件 global money, HP, saturation print("你遇到了一位旅行商人,他願意與你交易。") print("1. 購買補血藥水(5金幣,血量+5)") print("2. 購買乾糧(3金幣,飽食度+2)") print("3. 離開") choice = input("選擇行動:") if choice == "1" and money >= 5: # 購買補血藥水 print("你購買了補血藥水,血量+5") money -= 5 HP += 5 elif choice == "2" and money >= 3: # 購買乾糧 print("你購買了乾糧,飽食度+2") money -= 3 saturation += 2 elif choice == "3": # 選擇離開 print("你選擇繼續冒險。") else: # 處理無效選擇 print("金幣不足或無效選擇,交易失敗。") # 初始化遊戲狀態 random.seed() money, HP, ATK, saturation, day = 10, 10, 1, 10, 0 print(f"目前 金幣{money}枚 血量{HP}/10滴 攻擊力{ATK}點 飽食度{saturation*10}%") nothing = input("按Enter繼續...") # 遊戲主迴圈 while True: day += 1 print(f"第{day}天") adventure() # 每天進行一次冒險 if HP <= 0: # 死亡結束遊戲 print("你因致命傷而死...遊戲結束") break print("夜幕降臨") print("辛苦了一天,有點餓。飽食度-1") saturation -= 1 # 每晚消耗飽食度 # 根據飽食度影響血量恢復 if saturation <= 3: # 飽食度過低 print("餓的睡不好,HP+1") HP += 1 else: print("一覺好眠,HP+3") HP += 3 # 控制血量上限 if HP > 10: HP = 10 # 控制飽食度範圍 if saturation > 10: saturation = 10 elif saturation <= 0: print("你死於飢餓...遊戲結束") break print(f"目前 金幣{money}枚 血量{HP}滴 攻擊力{ATK}點 飽食度{saturation*10}%") print("想回家了?還是繼續冒險") type = input("回家輸入1,冒險輸入2") if type == "1": break # 玩家選擇回家 else: continue # 結算階段 if HP > 0: print(f"你最終獲得{money}枚金幣 存活{day}天") if money > 10: print("發財了") if money + day > 50: print("總評分:S") elif money + day > 40: print("總評分:A") else: print("總評分:B") else: print("冒險使人貧窮") print("總評分:C") else: print("屍骨無存") print("總評分:D") ```