如何为我的TextRPG创建任务菜单

2024-09-24 22:29:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为我的文字rpg创建一个任务菜单,它应该是所有任务的列表,完成任务后,应该从菜单中删除完成的任务。我用一个类进行了尝试,但出现了以下错误:

索引器:列表分配索引超出范围 <main.quest_菜单对象位于0x000001D4F8EC3FD0>

#为我的任务菜单生成一个类

       class quest_menu():
             def __init__(self, quests):
             self.quests = quests

生成从菜单中删除单个任务的函数

             def delete_quest_1(self):

             del self.quests[0]

             def delete_quest_2(self):

             del self.quests[1]

在列表中生成任务

            quests = quest_menu( ["Quest: Murder: kill Rottger = exp: 100, gold 100",
                                  "\nQuest: Ring of strenght: Find the ring of strenght= : exp 50"])

任务完成时从库存中删除任务的命令

            quests.delete_quest_1()
            print(quests)

            quests.delete_quest_2()
            print(quests)    

我做错了什么?有人有一些改进代码的技巧吗? 提前谢谢


Tags: ofself列表def错误菜单deleterpg
1条回答
网友
1楼 · 发布于 2024-09-24 22:29:35

我认为错的是,你先删除了一个任务,然后剩下的唯一任务是第二个任务,这使得该任务成为列表中的第一项,因此使用函数删除任务将导致索引器,因为任务现在处于索引0。试着用这个代替

class quest_menu():
    def __init__(self, quests):
        self.quests = quests
    
    def delete_quest_1(self):
        del self.quests[0]
    def delete_quest_2(self):
        del self.quests[1]

quests = quest_menu( ["Quest: Murder: kill Rottger = exp: 100, gold 100", "\nQuest: Ring of strenght: Find the ring of strenght= : exp 50"])

quests.delete_quest_1()
print(quests.quests)
quests.delete_quest_1()
print(quests.quests)

相关问题 更多 >