如何修复我的库存if/else循环系统?[基于Python GUI的冒险游戏]

如何修复我的库存if/else循环系统?[基于Python GUI的冒险游戏],python,user-interface,tkinter,Python,User Interface,Tkinter,我正试图重写我的一个基于GUI的旧冒险游戏,但我遇到了麻烦。我只是一个卑微的初学者,所以我不能正确地诊断这里发生了什么。在我的代码中,我使用and if语句查看他们的库存中是否有项目skull(inv)。即使inv==skull,程序也会继续运行到最后一个else,就像他们的库存中没有骷髅一样,而不是转到第64行并看到inv==('skull') 非常感谢您提供的任何帮助,包括如何通过代码进行优化,而不仅仅是修复:) 编辑:我开始尝试使用一个列表(元组),然后检查该项是否在列表中,但它仍然不起作

我正试图重写我的一个基于GUI的旧冒险游戏,但我遇到了麻烦。我只是一个卑微的初学者,所以我不能正确地诊断这里发生了什么。在我的代码中,我使用and if语句查看他们的库存中是否有项目
skull
inv
)。即使
inv==skull
,程序也会继续运行到最后一个
else
,就像他们的库存中没有骷髅一样,而不是转到第64行并看到
inv==('skull')

非常感谢您提供的任何帮助,包括如何通过代码进行优化,而不仅仅是修复:)

编辑:我开始尝试使用一个列表(元组),然后检查该项是否在列表中,但它仍然不起作用:(


编辑代码:

inv=['skull']
def r_room():
        def witch_fight():
            def fgt_slap():
                rand = random.randint(1, 13)

                if rand <= 12:

                    slap_die()

                else:

                    slap_win()

            def fgt_sh():
                rand = random.randint(1, 13)

                if rand <= 9:

                    sh_die()

                else:

                    sh_win()

            def fgt_gc():
                rand = random.randint(1, 13)

                if rand <= 7:

                    gc_die()

                else:

                    gc_win()

            fgt_play()

            global inv
            if inv in ['skull', 'crest']:

                img_loc = ('resources\\images\\witch.gif')
                bg_img = tk.PhotoImage(file = img_loc)
                bg_lbl = tk.Label(image = bg_img)
                bg_lbl.image = bg_img
                bg_lbl.place(x=0, y=0)

                lbl1 = tk.Label(text='Time to teach this witch who\'s boss!',
                            fg='#cdd0d0', bg='#000000', font = ['Helvetica', 15])
                lbl1.place(x=400, y=6)

                btn1 = tk.Button(text='Slap Her?', font = ['Helvetica', 25], bg='#000000', fg='#cdd0d0', width=16,
                                command = lambda:[btn1.destroy(), btn2.destroy(), btn3.destroy(), lbl1.destroy(), bg_lbl.destroy(), snd_stop(), fgt_slap()])
                btn1.place(x=330, y=654)

                btn2 = tk.Button(text='Use Skeleton Head?', font = ['Helvetica', 25], bg='#000000', fg='#cdd0d0', width=16,
                                command = lambda:[btn1.destroy(), btn2.destroy(), btn3.destroy(), lbl1.destroy(), bg_lbl.destroy(), snd_stop(), fgt_sh()])
                btn2.place(x=640, y=654)

                btn3 = tk.Button(text='Use Golden Crest?', font = ['Helvetica', 25], bg='#000000', fg='#cdd0d0', width=16,
                                command = lambda:[btn1.destroy(), btn2.destroy(), btn3.destroy(), lbl1.destroy(), bg_lbl.destroy(), snd_stop(), fgt_gc()])
                btn3.place(x=950, y=654)


            else:
                if inv in ['skull']:

                    img_loc = ('resources\\images\\witch.gif')
                    bg_img = tk.PhotoImage(file = img_loc)
                    bg_lbl = tk.Label(image = bg_img)
                    bg_lbl.image = bg_img
                    bg_lbl.place(x=0, y=0)

                    lbl1 = tk.Label(text='Time to teach this witch who\'s boss!',
                                fg='#cdd0d0', bg='#000000', font = ['Helvetica', 15])
                    lbl1.place(x=400, y=6)

                    btn1 = tk.Button(text='Slap Her?', font = ['Helvetica', 25], bg='#000000', fg='#cdd0d0', width=16,
                                    command = lambda:[btn1.destroy(), btn2.destroy(), lbl1.destroy(), bg_lbl.destroy(), snd_stop(), fgt_slap()])
                    btn1.place(x=330, y=654)

                    btn2 = tk.Button(text='Use Skeleton Head?', font = ['Helvetica', 25], bg='#000000', fg='#cdd0d0', width=16,
                                    command = lambda:[btn1.destroy(), btn2.destroy(), lbl1.destroy(), bg_lbl.destroy(), snd_stop(), fgt_sh()])
                    btn2.place(x=640, y=654)

                else:
                    if inv in ['crest']:

                        img_loc = ('resources\\images\\witch.gif')
                        bg_img = tk.PhotoImage(file = img_loc)
                        bg_lbl = tk.Label(image = bg_img)
                        bg_lbl.image = bg_img
                        bg_lbl.place(x=0, y=0)

                        lbl1 = tk.Label(text='Time to teach this witch who\'s boss!',
                                    fg='#cdd0d0', bg='#000000', font = ['Helvetica', 15])
                        lbl1.place(x=400, y=6)

                        btn1 = tk.Button(text='Slap Her?', font = ['Helvetica', 25], bg='#000000', fg='#cdd0d0', width=16,
                                        command = lambda:[btn1.destroy(), btn2.destroy(), lbl1.destroy(), bg_lbl.destroy(), snd_stop(), fgt_slap()])
                        btn1.place(x=330, y=654)

                        btn2 = tk.Button(text='Use Golden Crest?', font = ['Helvetica', 25], bg='#000000', fg='#cdd0d0', width=16,
                                        command = lambda:[btn1.destroy(), btn2.destroy(), lbl1.destroy(), bg_lbl.destroy(), snd_stop(), fgt_gc()])
                        btn2.place(x=640, y=654)

                    else:

                        img_loc = ('resources\\images\\witch.gif')
                        bg_img = tk.PhotoImage(file = img_loc)
                        bg_lbl = tk.Label(image = bg_img)
                        bg_lbl.image = bg_img
                        bg_lbl.place(x=0, y=0)

                        lbl1 = tk.Label(text='Time to teach this witch who\'s boss!',
                                    fg='#cdd0d0', bg='#000000', font = ['Helvetica', 15])
                        lbl1.place(x=500, y=6)

                        btn1 = tk.Button(text='Slap Her?', font = ['Helvetica', 25], bg='#000000', fg='#cdd0d0', width=16,
                                        command = lambda:[btn1.destroy(), lbl1.destroy(), bg_lbl.destroy(), snd_stop(), fgt_slap()])
                        btn1.place(x=480, y=654)
inv=['skull']
def r_房间():
定义女巫之战():
def fgt_slap():
rand=random.randint(1,13)
如果随机数一些提示:
(1) 我强烈建议在尝试使用Tkinter之前先掌握基础知识。例如:

if rand==1 or rand==2 or rand==3 or rand==4 or rand==5 or rand==6 or rand==7 or rand==8 or rand==9 or rand==10 or rand==11 or rand==12:
可以简明扼要地缩短为:

if rand <= 12:

如果rand是正确的缩进?函数3深?可能重复我为什么选择这个重复:你应该使用iterable(set,list,tuple)对于您的清单,请使用
中的
检查内容。您还应该重新构造您的
rand==…
检查。@MikeScotty感谢您的帮助,我对元组进行了一些研究,它似乎起到了作用,但现在我遇到了这个错误