下面是一个简单的文字挂机游戏的 Python 代码示例,该游戏使用了 random 和 time 模块来模拟随机事件和时间流逝,还使用了 shelve 模块来保存游戏进度。
import random
import time
import shelve
# 定义游戏相关参数
max_level = 100
experience = 0
level = 1
money = 0
inventory = []
# 定义游戏存档文件名
save_file = "game_save.dat"
# 加载游戏存档,如果文件不存在则创建新存档
try:
save = shelve.open(save_file)
experience = save["experience"]
level = save["level"]
money = save["money"]
inventory = save["inventory"]
save.close()
except FileNotFoundError:
pass
# 游戏循环
while True:
# 显示当前游戏状态
print(f"Level: {level}, Experience: {experience}, Money: {money}")
print("Inventory:", inventory)
print()
# 等待一段时间,模拟时间流逝
time.sleep(1)
# 随机事件发生概率
event_probability = 0.1
# 判断是否发生随机事件
if random.random() < event_probability:
# 随机事件发生,根据当前等级有一定概率获得物品或金币或经验值
if random.random() < 0.2 and level <= max_level:
experience += random.randint(1, 5)
print("获得了一些经验值!")
elif random.random() < 0.3:
money += random.randint(1, 5)
print("获得了一些金币!")
else:
inventory.append(random.choice(["武器", "装备", "道具"]))
print("获得了一些物品!")
else:
# 没有发生随机事件,根据当前等级有一定概率升级或获得金币或没有变化
if random.random() < 0.2 and level <= max_level:
experience += random.randint(10, 20)
level += 1
money += random.randint(10, 20)
print("升级了!")
elif random.random() < 0.3:
money += random.randint(1, 5)
print("获得了一些金币!")
else:
print("没有变化。")
# 将游戏状态保存到存档中
save = shelve.open(save_file)
save["experience"] = experience
save["level"] = level
save["money"] = money
save["inventory"] = inventory
save.close()