# ====== 第14关:蛋仔模拟器 - 计算机仿真 ====== # 用代码模拟真实世界!做电子宠物、月球着陆器 import time import random # --- 蛋仔电子宠物 --- class VirtualEgg: """蛋仔电子宠物模拟器""" def __init__(self, name): self.name = name self.hunger = 0 # 饥饿值(越高越饿) self.happiness = 10 # 快乐值(越高越开心) self.energy = 10 # 能量值 self.age = 0 # 年龄(天) self.alive = True def feed(self): """喂食""" if self.hunger > 0: self.hunger -= 3 print(f" 给{self.name}喂了食物!饥饿值降到{self.hunger}") else: print(f" {self.name}不饿,不想吃东西...") def play(self): """玩耍""" if self.energy >= 2: self.happiness += 2 self.energy -= 2 self.hunger += 1 print(f" 和{self.name}玩耍了!快乐值升到{self.happiness}") else: print(f" {self.name}太累了,需要休息...") def rest(self): """休息""" self.energy += 3 self.hunger += 1 print(f" {self.name}休息了一会儿,能量恢复到{self.energy}") def update(self): """时间流逝,状态变化""" self.hunger += 1 self.happiness -= 1 self.age += 1 if self.hunger >= 10: print(f" {self.name}太饿了!快喂食!") if self.happiness <= 0: print(f" {self.name}不开心了!快陪它玩!") if self.hunger >= 15: self.alive = False print(f" {self.name}饿坏了...游戏结束") def status(self): """显示状态""" print(f" [{self.name}] 饥饿:{self.hunger} 快乐:{self.happiness} 能量:{self.energy} 年龄:{self.age}天") # --- 运行模拟 --- print("=== 蛋仔电子宠物模拟器 ===") print() pet = VirtualEgg("小黄蛋") # 模拟5天的蛋仔生活 for day in range(1, 6): print(f"--- 第{day}天 ---") pet.update() # 随机决定今天做什么 action = random.choice(["feed", "play", "rest"]) if action == "feed": pet.feed() elif action == "play": pet.play() else: pet.rest() pet.status() print() time.sleep(0.3) # 稍微暂停一下,让输出更好看 if not pet.alive: break if pet.alive: print(f"恭喜!{pet.name}活过了5天!") # --- 简单的月球着陆器模拟 --- print() print("=== 蛋仔月球着陆器 ===") print() altitude = 100 # 高度(米) fuel = 25 # 燃料 velocity = 0 # 速度 gravity = -1.6 # 月球引力(每回合减速) print("蛋仔开着飞船要降落月球!") print(f"高度:{altitude}米 燃料:{fuel} 速度:{velocity}") print() while altitude > 0 and fuel > 0: # 自动决策:高度低且速度快就点火 if altitude < 20 and velocity < -3: thrust = min(fuel, 3) # 点火减速 print(f" 点火!用了{thrust}燃料") else: thrust = 0 fuel -= thrust velocity += gravity + thrust * 0.5 altitude += velocity if altitude < 0: altitude = 0 print(f" 高度:{altitude:.0f}米 燃料:{fuel} 速度:{velocity:.1f}") # 判断着陆结果 if abs(velocity) < 3: print("\n完美着陆!蛋仔安全到达月球!") else: print(f"\n着陆速度太快({velocity:.1f}),蛋仔摔了!") # ====== 小挑战 ====== # 1. 给蛋仔电子宠物加上"健康值"属性 # 2. 修改着陆器,让玩家自己输入要不要点火 # 3. 模拟一个蛋仔派对:多个蛋仔一起参加,随机产生互动 # 在下面写你的代码: # 提示:仿真 = 用代码模拟真实世界的规则 # time.sleep() 可以让程序暂停,模拟时间流逝 # random 随机事件让模拟更有趣