猫史档案馆


用ChatGPT制作的冒险游戏

用户:谁盗我号谁s谁盗我号谁s查看:0 回复:0 评论:0 创建时间:2024-03-23T18:48:22


 

import random

class Player:
    def __init__(self, name):
        self.name = name
        self.hp = 100
        self.max_hp = 100
        self.defense = 0
        self.attack = 10
        self.energy = 0
        self.equipment = {'护甲': '无', '武器': '无', '戒指': '无', '翅膀': '无', '药水': '无'}
        self.equip_quality = {'护甲': '无', '武器': '无', '戒指': '无', '翅膀': '无', '药水': '无'}
        self.money = 100  # 初始货币数量
        self.level = 1  # 初始等级
        self.super_chest_key = False  # 是否拥有超级宝箱的钥匙

    def use_skill(self, skill, target):
        if skill == 'charge':
            self.energy += 20
            print(f'{self.name}蓄力,能量增加20点!')
        elif skill == 'defense':
            if self.energy >= 10:
                self.defense += random.randint(3, 6)
                self.energy -= 10
                print(f'{self.name}使用了防御技能,提升了{self.defense}点防御力!')
            else:
                print(f'{self.name}能量不足,无法使用防御技能!')
        elif skill == 'attack':
            if self.energy >= 15:
                damage = random.randint(8, 12) + self.attack
                damage -= target.defense
                target.hp -= damage
                self.energy -= 15
                print(f'{self.name}对{target.name}发动了攻击,造成了{damage}点伤害!')
            else:
                print(f'{self.name}能量不足,无法使用攻击技能!')
        elif skill == 'heal':
            if self.energy >= 25:
                heal_amount = random.randint(15, 25)
                self.hp = min(self.max_hp, self.hp + heal_amount)
                self.energy -= 25
                print(f'{self.name}使用了治疗技能,恢复了{heal_amount}点生命值!')
            else:
                print(f'{self.name}能量不足,无法使用治疗技能!')

    def open_chest(self):
        items = {'护甲': ['青铜坚硬甲', '青铜反伤甲', '白银坚硬甲', '白银反伤甲', '黄金坚硬甲', '黄金反伤甲', '铂金坚硬甲', '铂金反伤甲', '钻石坚硬甲', '钻石反伤甲', '星耀坚硬甲', '星耀反伤甲'],
                 '武器': ['青铜剑', '青铜斧', '白银弓', '白银魔杖', '黄金喵', '黄金长喵', '铂金剑', '铂金法杖', '钻石大剑', '钻石法杖', '星耀光剑', '星耀法杖'],
                 '戒指': ['青铜骷髅戒指', '青铜水晶戒指', '白银幸运戒指', '白银暗影戒指', '黄金神圣戒指', '黄金灵魂戒指',
                         '铂金霸者戒指', '铂金毁灭戒指', '钻石炽热戒指', '喵霜戒指', '星耀暴怒戒指', '星耀光明戒指'],
                 '翅膀': ['青铜飞羽翅膀', '青铜鹰眼翅膀', '白银冰霜翅膀', '白银炎翼翅膀', '黄金神圣翅膀', '黄金魔法翼', '铂金光耀翅膀', '铂金暗影翅膀', '钻石飓风翅膀', '钻石冥界翅膀', '星耀龙翼', '星耀凤羽'],
                 '药水': ['青铜药水', '白银药水', '黄金药水', '铂金药水', '钻石药水', '星耀药水']}

        for item_type in items:
            item = random.choice(items[item_type])
            quality = self.get_item_quality()
            self.equipment[item_type] = item
            self.equip_quality[item_type] = quality
            print(f'{self.name}打开了宝箱,获得了{quality}的{item}!')

            # 如果获得钻石品质的药水,激活超级宝箱的钥匙
            if item_type == '药水' and quality == '钻石':
                self.super_chest_key = True

    def get_item_quality(self):
        qualities = ['青铜', '白银', '黄金', '铂金', '钻石', '星耀']
        quality = random.choice(qualities)
        return quality

    def visit_shop(self):
        print(f'欢迎来到商店,您当前的货币数量为{self.money},等级为{self.level}。请选择购买项:')
        print('1. 青铜装备(50货币)')
        print('2. 白银装备(100货币)')
        print('3. 黄金装备(150货币)')
        print('4. 铂金装备(200货币)')
        print('5. 钻石装备(300货币)')
        print('6. 星耀装备(500货币)')
        print('7. 技能书(200货币)')
        print('8. 药水(30货币)')

        choice = input('请输入选项:')
        if choice == '1':
            self.buy_equipment('青铜', 50)
        elif choice == '2':
            self.buy_equipment('白银', 100)
        elif choice == '3':
            self.buy_equipment('黄金', 150)
        elif choice == '4':
            self.buy_equipment('铂金', 200)
        elif choice == '5':
            self.buy_equipment('钻石', 300)
        elif choice == '6':
            self.buy_equipment('星耀', 500)
        elif choice == '7':
            self.buy_skill_book()
        elif choice == '8':
            self.buy_potion()

    def buy_equipment(self, quality, price):
        if self.money >= price:
            for item_type in self.equip_quality:
                if item_type == '翅膀':
                    if quality == '青铜':
                        self.equip_quality[item_type] = random.choice(['青铜飞羽翅膀', '青铜鹰眼翅膀'])
                    elif quality == '白银':
                        self.equip_quality[item_type] = random.choice(['白银冰霜翅膀', '白银炎翼翅膀'])
                    elif quality == '黄金':
                        self.equip_quality[item_type] = random.choice(['黄金神圣翅膀', '黄金魔法翼'])
                    elif quality == '铂金':
                        self.equip_quality[item_type] = random.choice(['铂金光耀翅膀', '铂金暗影翅膀'])
                    elif quality == '钻石':
                        self.equip_quality[item_type] = random.choice(['钻石飓风翅膀', '钻石冥界翅膀'])
                    elif quality == '星耀':
                        self.equip_quality[item_type] = random.choice(['星耀龙翼', '星耀凤羽'])
                else:
                    self.equip_quality[item_type] = quality
            self.money -= price
            print('购买成功!')
        else:
            print('货币不足,无法购买!')

    def buy_skill_book(self):
        price = 200
        if self.money >= price:
            self.money -= price
            print('购买成功!')
        else:
            print('货币不足,无法购买!')

    def buy_potion(self):
        price = 30
        self.money -= price
        self.hp += 20  # 药水增加20点生命值
        self.hp = min(self.max_hp, self.hp)
        print('购买药水成功,恢复20点生命值!')

def play_game():
    player = Player('玩家')

    while True:
        print('1. 进行闯关')
        print('2. 访问商店')
        print('3. 查看玩家信息')
        print('4. 退出游戏')
        choice = input('请选择操作:')

        if choice == '1':
            player.open_chest()
            if player.super_chest_key and random.random() < 0.2:  # 20%的概率开出星耀品质装备
                items = ['星耀护甲', '星耀光剑', '星耀法杖', '星耀戒指', '星耀翅膀']
                item = random.choice(items)
                player.equipment[item_type] = item
                player.equip_quality[item_type] = '星耀'
                print(f'{player.name}打开了超级宝箱,获得了星耀品质的{item}!')
        elif choice == '2':
            player.visit_shop()
        elif choice == '3':
            print(f'玩家信息:\n姓名:{player.name}\n生命值:{player.hp}/{player.max_hp}\n防御力:{player.defense}\n'
                  f'攻击力:{player.attack}\n能量:{player.energy}\n当前装备:{player.equipment}\n货币数量:{player.money}\n等级:{player.level}')
        elif choice == '4':
            print('退出游戏。')
            break

if __name__ == '__main__':
    play_game()


回复

上一页1 页 / 共 0下一页