鱼C论坛

 找回密码
 立即注册
查看: 1715|回复: 1

策略优化问题,想用代码实现,能力不够,只写了一种策略,求优化代码

[复制链接]
发表于 2021-5-7 22:18:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
规则:有三扇门,每扇门一开始都是关着的,门后有着随机数量的金币,点击一次后,对应的门会打开,开门时不会获得金币,若继续点击该门则获得对应门后的金币,每隔3轮,未被点击的门会关闭,并且门后的金币数重新随机产生,每个人有100次点击的机会,金币数量最多的人获胜.

门:
1.有开关两种状态,且关闭时不能获取金币,起始状态为关
2.门后的金币数在(1.50)之间随机产生
3.每隔3轮,未被点击的门要进行重置

人:
1.具有金币数量起始为0
2.具有一百次机会
import random as r


class Door:
    def __init__(self, state=False):#初始化门的状态
        self.state = state
        self.gold_coin = r.randint(1, 50)
        self.num = 3

    def count(self):#保证被选中的门不会被刷新
        if not self.state:
            self.state = True
            print(self.gold_coin)
        elif self.state:
            print(self.gold_coin)
            self.num += 1

    def refresh(self):#三轮未被选中的门刷新
        if self.num == 0:
            self.num = 3
            self.gold_coin = r.randint(1, 50)
            self.state = False
        else:
            self.num -= 1


class Human:
    def __init__(self):#初始化人的状态
        self.max = 0
        self.click = 100
        self.goldcoinsum = 0


def strategy(chioce=1):
    a = Door()
    b = Door()
    c = Door()
    h = Human()
    whichdoor = ""
    otherdoors = []
    if chioce == 1:
        a.count()
        b.count()
        c.count()
        a.refresh()
        b.refresh()
        c.refresh()
        h.click -= 3
        h.max = max(a.gold_coin, b.gold_coin, c.gold_coin)#选最大的金币数的门
        if a.gold_coin > b.gold_coin and a.gold_coin > c.gold_coin:#判断哪个门金币数最大
            whichdoor = a
            otherdoors = [b, c]
        elif b.gold_coin < a.gold_coin < c.gold_coin:
            whichdoor = c
            otherdoors = [b, a]
        else:
            whichdoor = b
            otherdoors = [a, c]
        while h.click > 0:#策略的循环
            h.goldcoinsum += h.max
            h.click -= 1
            whichdoor.count()
            whichdoor.refresh()
            otherdoors[0].refresh()
            otherdoors[1].refresh()
        print("您最终的金币总数为%d" % h.goldcoinsum)

strategy()

写的有点烂,大佬轻喷
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-23 15:57:08 | 显示全部楼层
大佬没理你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 06:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表