当前位置: 首页 > 知识库问答 >
问题:

不是根据判决换房间

东方镜
2023-03-14

我目前正在开发一个基于文本的游戏,在游戏中,你可以在房间之间移动,并在所说的房间中拾取物品,直到你到达“老板”房间。到目前为止,我已将所有内容正确打印出来,并将其显示在房间中是否有物品、物品是什么以及您所在的房间中。

我目前的问题是,它不是根据用户输入来改变房间。例如,您从Sepulture开始。用户输入North会将您的位置带入兵营。然而,这并不能让我远离seculture。

我的代码如下:

def intro():
    print("You've finally awoken, my fallen Lord. Your kingdom, once great, is now simply ruins.")
    print("To restore yourself to your once grand ability, you must collect the Souls of the previous Lords.")
    print("You can navigate your decrepit domain by entering: North, South, East and West.")
    print("To collect the Souls, you can enter: collect (soul name).")
    print("-" * 30, "\n")

def main():
    while True:
        location = 'Sepulture'
        inventory = []
        my_dict = {
            'Sepulture': {'North': 'Barracks', 'West': 'Grand Entrance', 'East': 'Chapel', 'South': 'Ruined Town'},
            'Barracks': {'East': 'War Room', 'South': 'Sepulture', 'soul': 'Soul of a Warrior Lord'},
            'War Room': {'West': 'Barracks', 'soul': 'Soul of a Dragon Lord'},
            'Chapel': {'East': 'Sepulture', 'soul': 'Soul of Light'},
            'Grand Entrance': {'North': 'Great Tower', 'West': 'Sepulture', 'soul': 'Soul of a Lord of Men'},
            'Great Tower': {'South': 'Grand Entrance', 'soul': 'Soul of a Lord of Lords'},
            'Ruined Town': {'North': 'Sepulture', 'East': 'Chamber of the Lord of Cinder', 'soul': 'Soul of the Pygmy'},
            'Chamber of the Lord of Cinder': {'West': 'Ruined Town', 'soul': 'Lord of Cinder'}
        }
        print("You currently reside in the", location + '.')
        print("You currently possess the following: ", *inventory)
        if location in my_dict and location != 'Sepulture':
            print("My Lord, you've found the {}.".format(my_dict[location]['soul']))
        print("What would you like to do, my Lord?")
        move = input()

        if move in my_dict[location]:
            location == my_dict[location][move]

intro()
main()

感谢您的帮助。

共有2个答案

元胡媚
2023-03-14
location = my_dict[location][move] 

因为你已经写了两个等于那里像这样==

薛保臣
2023-03-14

只需稍加重组,就可以实现:

def intro():
    print("You've finally awoken, my fallen Lord. Your kingdom, once great, is now simply ruins.")
    print("To restore yourself to your once grand ability, you must collect the Souls of the previous Lords.")
    print("You can navigate your decrepit domain by entering: North, South, East and West.")
    print("To collect the Souls, you can enter: collect (soul name).")
    print("-" * 30, "\n")

my_dict = {
    'Sepulture': {'North': 'Barracks', 'West': 'Grand Entrance', 'East': 'Chapel', 'South': 'Ruined Town'},
    'Barracks': {'East': 'War Room', 'South': 'Sepulture', 'soul': 'Soul of a Warrior Lord'},
    'War Room': {'West': 'Barracks', 'soul': 'Soul of a Dragon Lord'},
    'Chapel': {'East': 'Sepulture', 'soul': 'Soul of Light'},
    'Grand Entrance': {'North': 'Great Tower', 'West': 'Sepulture', 'soul': 'Soul of a Lord of Men'},
    'Great Tower': {'South': 'Grand Entrance', 'soul': 'Soul of a Lord of Lords'},
    'Ruined Town': {'North': 'Sepulture', 'East': 'Chamber of the Lord of Cinder', 'soul': 'Soul of the Pygmy'},
    'Chamber of the Lord of Cinder': {'West': 'Ruined Town', 'soul': 'Lord of Cinder'}
}

def main():
    location = 'Sepulture'
    inventory = []

    while True:
        print("You currently reside in the", location + '.')
        print("You currently possess the following: ", *inventory)
        if location in my_dict and location != 'Sepulture':
            print("My Lord, you've found the {}.".format(my_dict[location]['soul']))
        print("What would you like to do, my Lord?")
        move = input()

        if move in my_dict[location]:
            location = my_dict[location][move]

intro()
main()

然而,如果你要把它的逻辑结论,你真的需要考虑把所有的故事情节移动到一个你在启动时阅读的文本文件中。这样,你就可以把你的“冒险引擎”和其他故事一起使用,而不用重写程序。早期的冒险游戏就是这样运作的。

 类似资料:
  • 当我试图构建我的应用程序时,我遇到了以下编译错误: 持久性模块在Android设置中是独立的。 建筑格拉德尔 ext.androidXRoom=“2.1.0-alpha02” 我试着把kotlin版本,room版本,改回AndroidArch room,但没用。我还尝试了清理项目和使Android Studio的缓存失效。但它不起作用。 编辑:AppDatabase源

  • 我在尝试编译项目时出现了这个错误:

  • 我创建数据库,使用curentdate(1-25)作为,使用room(08-00_11-00_karpet1-)作为>父id)。 问题一 使用此布局设计,如何禁用已订购的按钮,以指示该房间不再可用。 (例如,1-28日的用户订单karpet 14-17,当用户创建订单数据库时,将根据日期(parentid)更新数据库) 问题二 当特定日期点击时,房间按钮将根据上的数据禁用,并在该日期(),如果没有

  • 我正在查看OptaPlanner会议安排示例。有房有人。我已经定义了每个房间的最小和最大容量,然后我试着执行一些规则。一条规则是不要超过最大容量,我是这样实现这条规则的: 它在工作。现在我想实现最小容量。例如,有四个房间,每个房间的最大容量为60,最小容量为20(或可以不同)。分配完后,一个房间住满了50人,第二个40人,第三个60人,最后一个只有10人。最后一个房间不到20。我不想分配40、40

  • 我正在浏览使用替换的Jaxb继承的Blaise's Bloghttp://blog.bdoughan.com/2010/11/jaxb-and-inheritance-using-substitution.html。 我想实现相同的功能,但不想实现根元素。我将这种类型的XML视为输出。 以下是配置。Java语言 Customer.java 住址Java语言 电话号码。Java语言 Demo.jav

  • 错误:查询有问题:[SQLITE_ERROR]SQL错误或缺少数据库(没有这样的表:任务) 显示了这个错误,我怎么可能修复它? 我正在学习这个教程