学代码,用AI

现在的AI太强大了,就像豆包一样,非常好用的AI,在文字的描述下,基本能搞懂基础代码逻辑,以下是我用AI做的“恶魔轮盘”文字版代码,可以复制到Python编译器内游玩。

f2eaab307eb4466e8ee77251494898cf.jpg

 代码∶

import random

import time

 

class Item:

    def __init__(self, name, effect):

        self.name = name

        self.effect = effect

 

class Character:

    def __init__(self, name, health):

        self.name = name

        self.health = health

        self.items = []

 

    def add_item(self, item):

        self.items.append(item)

 

    def use_item(self, item_name):

        for item in self.items:

            if item.name == item_name:

                self.items.remove(item)

                return item

        return None

 

# 定义游戏中的道具

magnifier = Item("放大镜", "查看当前枪内弹药")

cigarette = Item("香烟", "消除压力,恢复 1 点生命值")

handcuffs = Item("手铐", "让对手下一回合无法行动")

beer = Item("啤酒", "弹出当前枪膛内的子弹")

handsaw = Item("手锯", "使枪造成 2 点伤害")

 

# 游戏类

class DevilRoulette:

    def __init__(self):

        self.player = Character("玩家", 5)

        self.enemy = Character("恶魔", 5)

        self.round = 1

        self.is_game_over = False

 

    def start_game(self):

        print("欢迎来到恶魔轮盘游戏!")

        print("你身处一个神秘之地,恶魔在你面前,准备一决高下。")

        while not self.is_game_over:

            self.play_round()

            time.sleep(1)

 

    def play_round(self):

        print(f"第{self.round}回合开始,{self.player.name} 的生命值为 {self.player.health},{self.enemy.name} 的生命值为 {self.enemy.health}")

        time.sleep(1)

        num_real_bullets = random.randint(1, 3)

        num_blank_bullets = 5 - num_real_bullets

        print(f"枪内有{num_real_bullets}颗实弹,{num_blank_bullets}颗空包弹。")

        time.sleep(1)

 

        # 玩家选择向谁开枪

        shooter_choice = input("你想向自己(输入 1)还是恶魔(输入 2)开枪:")

        if shooter_choice == '1':

            shooter = self.player

            print(f"{self.player.name} 深吸一口气,颤抖着将枪口对准了自己。")

        elif shooter_choice == '2':

            shooter = self.enemy

            print(f"{self.player.name} 鼓起勇气,将枪口对准了恶魔。")

        else:

            print("无效的选择,请重新选择。")

            return

 

        bullet_type = "实弹" if random.randint(0, num_real_bullets + num_blank_bullets - 1) < num_real_bullets else "空包弹"

 

        if shooter == self.player:

            if bullet_type == "实弹":

                self.player.health -= 1

                print(f"{self.player.name} 被击中,生命值减 1。")

                if self.player.health <= 0:

                    print(f"{self.player.name} 被击败,游戏结束。")

                    self.is_game_over = True

            else:

                print(f"{self.player.name} 射出空包弹,无事发生。")

        else:

            if bullet_type == "实弹":

                self.enemy.health -= 1

                print(f"{self.enemy.name} 被击中,生命值减 1。")

                if self.enemy.health <= 0:

                    print(f"{self.enemy.name} 被击败,游戏结束。")

                    self.is_game_over = True

            else:

                print(f"{self.enemy.name} 未被击中,无事发生。")

 

        time.sleep(1)

 

        # 发放道具

        if self.round % 2 == 0:

            num_items = random.randint(1, 3)

            for _ in range(num_items):

                item = random.choice([magnifier, cigarette, handcuffs, beer, handsaw])

                self.player.add_item(item)

                print(f"{self.player.name} 获得道具:{item.name},{item.effect}。")

 

            num_items = random.randint(1, 3)

            for _ in range(num_items):

                item = random.choice([magnifier, cigarette, handcuffs, beer, handsaw])

                self.enemy.add_item(item)

                print(f"{self.enemy.name} 获得道具:{item.name},{item.effect}。")

 

        time.sleep(1)

 

        # 玩家选择是否使用道具

        use_item_choice = input("是否使用道具(输入 y 使用,输入 n 不使用):")

        if use_item_choice.lower() == 'y':

            if self.player.items:

                for i, item in enumerate(self.player.items, 1):

                    print(f"{i}. {item.name}: {item.effect}")

                item_index = int(input("请输入要使用的道具序号:")) - 1

                if 0 <= item_index < len(self.player.items):

                    item = self.player.use_item(self.player.items[item_index].name)

                    print(f"你使用了 {item.name},{item.effect}")

                else:

                    print("无效的道具序号,请重新选择。")

            else:

                print("你没有可使用的道具。")

 

        time.sleep(1)

 

        # 恶魔的 AI 决策

        if self.enemy.health < self.player.health:

            # 如果恶魔生命值低,有一定概率选择冒险攻击玩家

            if random.random() < 0.6:

                shooter = self.enemy

                bullet_type = "实弹" if random.randint(0, num_real_bullets + num_blank_bullets - 1) < num_real_bullets else "空包弹"

                if shooter == self.enemy:

                    if bullet_type == "实弹":

                        self.player.health -= 1

                        print(f"{self.enemy.name} 向 {self.player.name} 开枪,命中!{self.player.name} 生命值减 1。")

                        if self.player.health <= 0:

                            print(f"{self.player.name} 被击败,游戏结束。")

                            self.is_game_over = True

                    else:

                        print(f"{self.enemy.name} 向 {self.player.name} 开枪,未命中。")

            else:

                # 否则保守选择,不攻击

                print(f"{self.enemy.name} 选择暂不攻击。")

        else:

            # 如果恶魔生命值高,随机选择攻击或不攻击

            if random.random() < 0.4:

                shooter = self.enemy

                bullet_type = "实弹" if random.randint(0, num_real_bullets + num_blank_bullets - 1) < num_real_bullets else "空包弹"

                if shooter == self.enemy:

                    if bullet_type == "实弹":

                        self.player.health -= 1

                        print(f"{self.enemy.name} 向 {self.player.name} 开枪,命中!{self.player.name} 生命值减 1。")

                        if self.player.health <= 0:

                            print(f"{self.player.name} 被击败,游戏结束。")

                            self.is_game_over = True

                    else:

                        print(f"{self.enemy.name} 向 {self.player.name} 开枪,未命中。")

            else:

                print(f"{self.enemy.name} 选择暂不攻击。")

 

        # 恶魔使用道具逻辑

        if self.enemy.items:

            if random.random() < 0.3:

                item_to_use = random.choice(self.enemy.items)

                item_used = self.enemy.use_item(item_to_use.name)

                print(f"{self.enemy.name} 使用了 {item_used.name},{item_used.effect}。")

 

        time.sleep(1)

 

        # 检查道具是否用完并刷新

        if not self.player.items and not self.enemy.items:

            print("玩家和恶魔的道具都已用完,只见道具台降了下去。")

            time.sleep(1)

            num_items = random.randint(1, 5)

            for _ in range(num_items):

                item = random.choice([magnifier, cigarette, handcuffs, beer, handsaw])

                self.player.add_item(item)

            num_items = random.randint(1, 5)

            for _ in range(num_items):

                item = random.choice([magnifier, cigarette, handcuffs, beer, handsaw])

                self.enemy.add_item(item)

            print("道具台升了上来,带来了新道具。")

 

        time.sleep(1)

        self.round += 1

 

if __name__ == "__main__":

    game = DevilRoulette()

    game.start_game()

    

感谢浏览

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值