不和谐,机器人在模拟彩票后崩溃

时间:2021-01-27 21:25:33

标签: python discord.py

我将此模拟制作为一个不和谐的齿轮,但机器人离线并且控制台打开,如果我编写或退出它,则不执行任何操作... 达到 15000 时,机器人崩溃了,我该怎么办,为什么会崩溃? 有不和谐表情符号,随机选择,数字等有不同的机会,希望有人能帮助我!

    @bot.command()
    async def simulate(self, ctx, amount):
        wnitro = 0
        wkey = 0
        wgold = 0
        wred = 0
        wblue = 0
        wgreen = 0
        wgrey = 0
        for zaehler in range(1, int(amount)):
            drehungen = randint(5, 20)
            gone = randint(1, 1000)
            gtwo = randint(1, 1000)
            gthree = randint(1, 1000)
            gfour = randint(1, 1000)
            gfive = randint(1, 1000)
            gsix = randint(1, 1000)
            gseven = randint(1, 1000)
            geight = randint(1, 1000)
            gnine = randint(1, 1000)
            randomitem = [gone, gtwo, gthree, gfour, gfive, gsix, gseven, geight, gnine]
            slots = []
            for item in range(len(randomitem)):
                if randomitem[item] >= 950:
                    slots.append("<a:classic:802844186026049546>")
                elif randomitem[item] >= 850:
                    slots.append("<a:geld:770235576539676682>")
                elif randomitem[item] >= 800:
                    slots.append("<a:goldendia:802976550995755019>")
                elif randomitem[item] >= 650:
                    slots.append("<a:darkbluedia:802976435500875836>")
                elif randomitem[item] >= 500:
                    slots.append("<a:reddia:802873281841463296>")
                elif randomitem[item] >= 300:
                    slots.append("<a:greendia:802875898353156138>")
                else:
                    slots.append("<a:greydia:802977070627553311>")
            cdrehung = 1
            nitroextra = randint(1, 100)
            keyextra = randint(1, 10)
            coinsextra = randint(1, 5)
            coins2extra = randint(1, 2)
            i = 0
            while i < drehungen:
                if cdrehung == 0:
                    gewinn = slots[4]
                elif cdrehung == 1:
                    gewinn = slots[5]
                elif cdrehung == 2:
                    gewinn = slots[6]
                elif cdrehung == 3:
                    gewinn = slots[7]
                elif cdrehung == 4:
                    gewinn = slots[8]
                elif cdrehung == 5:
                    gewinn = slots[0]
                elif cdrehung == 6:
                    gewinn = slots[1]
                elif cdrehung == 7:
                    gewinn = slots[2]
                elif cdrehung == 8:
                    gewinn = slots[3]
                    cdrehung -= 9
                cdrehung += 1
                i += 1
                if i == drehungen:
                    if gewinn == "<a:classic:802844186026049546>":
                        if nitroextra == 1:
                            wnitro += 1
                        else:
                            drehungen += 1
                    elif gewinn == "<a:geld:770235576539676682>":
                        if keyextra == 1:
                            wkey += 1
                        else:
                            drehungen += 1
                    elif gewinn == "<a:goldendia:802976550995755019>":
                        if coinsextra == 1:
                            wgold += 1
                        else:
                            drehungen += 1
                    elif gewinn == "<a:darkbluedia:802976435500875836>":
                        if coins2extra == 1:
                            wblue += 1
                        else:
                            drehungen += 1
                    elif gewinn == "<a:reddia:802873281841463296>":
                        wred += 1
                    elif gewinn == "<a:greendia:802875898353156138>":
                        wgreen += 1
                    elif gewinn == "<a:greydia:802977070627553311>":
                        wgrey += 1
        await ctx.send(f"There are the results out of `{str(amount)}x` spins: {str(wnitro)}x Nitro, {str(wkey)} Key, {str(wgold)} <a:goldendia:802976550995755019>, {str(wblue)} <a:darkbluedia:802976435500875836>, {str(wred)} <a:reddia:802873281841463296>, {str(wgreen)}<a:greendia:802875898353156138>, {str(wgrey)}<a:greydia:802977070627553311>")

感谢所有帮助 c:

1 个答案:

答案 0 :(得分:1)

更新:我收回它,理论上您的插槽可能都是同一件事,或者是导致 drehungen 始终执行的事物的组合。您确实需要重新考虑循环中的逻辑。

更新:实际上这是错误的,您确实更新了cdrehung,它更新了gewinn...这很令人费解,但似乎它应该在某个时候结束。话虽如此,这个循环有点复杂,我会考虑所有这些不同变量的一些调试消息,以确定发生了什么。

看看它,在你的 while 循环中,gewinn 的状态没有改变,或者任何其他项目 (wnitro wkey wgold wblue) ......如果是这样的话,它可能意味着 drehungen 总是在递增......这意味着 i == drehungen 始终为真......这意味着无限循环。