您好,我是新来的编码和创建一个基于文本的游戏在python中。我正在写代码从一个房间搬到另一个房间。我需要一些人帮我清理目前为止所做的事情。我运行了一个即时反馈程序,得到了以下提示,但不确定如何纠正:
rooms = {'Great Hall': {'name': 'Great Hall', 'South': 'Bedroom', 'North': 'Dungeon', 'West':
'Library', 'East': 'Kitchen'},
'Bedroom': {'name': 'Bedroom', 'East': 'Cellar', 'North': 'Great Hall'},
'Cellar': {'name': 'Cellar', 'West': 'Bedroom'},
'Library': {'name': 'Library', 'East': 'Great Hall'},
'Kitchen': {'name': 'Kitchen', 'West': 'Great Hall', 'North': 'Dining Room'},
'Dining Room': {'name': 'Dining Room', 'South': 'Kitchen'},
'Dungeon': {'name': 'Dungeon', 'South': 'Great Hall', 'East': 'Gallery'},
'Gallery': {'name': 'Gallery', 'West': 'Dungeon'},
}
directions = ['North', 'South', 'East', 'West']
current_room = rooms['Great Hall']
while True:
# display current location
print()
print('You are in the {}.'.format(current_room['name']))
# get user input
command = input('\nWhat direction do you want to go? ').strip()
# movement
if command in directions:
if command in current_room:
current_room = rooms[current_room[command]]
else:
# bad movement
print("You can't go that way.")
# Exit game
elif command.lower() in ('q', 'quit'):
break
# bad command
else:
print("I don't understand that command.")
顺便说一下,您将在代码审查堆栈交换上获得更多帮助。https://codereview.stackexchange.com/
首先,您的代码不起作用-While循环中的代码没有缩进。
这将抛出一个错误:
while True:
print("hi")
这不会:
while True:
print("hi")
您似乎已经在使用它,但由于缩进错误,它没有注意到它。
这可能意味着制作多个词典,而不是把它们全部放在一个词典中,但这并不重要,所以我不知道为什么它会抱怨。
>
它说它不能对我的代码进行分类(不确定这意味着什么)我也不知道;请提供一些上下文。
将多个打印命令合并到一个函数中
现在这已经失控了。我不知道为什么它会告诉你这么做,但你可以用一个元组:
def printstuff(x):
for i in x:
print(i)
printstuff((5,5,3,85,"hi"))
# will print:
# 5
# 5
# 3
# 85
# hi
不知道这意味着什么。同样,请提供上下文。
另外,正如一条评论所说,使用f-strings(仅限python 3.6)将使您的生活更加轻松。这:
hello = "hello world"
print("\n{}".format(hello))
可以缩短为:
hello = "hello world"
print(f"\n{hello}")
(\n
将充当空白print()
调用)
我正在写一个基于文本的游戏,我想把每个房间链接到另外四个房间——北、南、东、西。我现在从北边开始。用户应该能够键入“向北走”,并且应该调用北房间。 我使用了三个文件——一个是我写主要故事的地方,一个是调用故事中适当的房间,一个是导航以避免相互导入。 房间。py: actions.py: 航行py: 当我运行first_room.start()时,它应该打印第一个房间。然后我输入“向北走”,我希望它
我正在为一个C项目做一个冒险游戏。目标基本上是拥有一组由类定义的房间。然后使用地图将它们链接在一起。除了检查是否没有房间和确保没有为空房间接受输入之外,我的一切都正常工作。例如,它会说“那里什么都没有”,然后重新提示用户移动的方向。当前,如果某个方向上没有空间,并且选择了该方向,我的程序就会崩溃。我现在已经设置好了它,至少确保输入了一个有效的方向(北、南、东或西),但它没有检查这个方向是否可用。有
在许多应用中,有必要将用户划分为可以一并处理的几个子集。最好的例子是,一个包含多个房间的聊天应用,当用户收到他所在的房间的消息,而不会收到其他人所在房间的消息。Flask-SocketIO支持通过join_room()和leave_room()函数来支持房间的概念: from flask_socketio import join_room, leave_room @socketio.on('j
并且我发现了基于数据库版本4的可能场景的迁移varargs。 我的问题是,假设我使用的是db v1的Room,当我的应用程序到达db v10时,我将不得不编写多少迁移方法? 在sqlite中,我们在中获得已安装应用程序的当前db版本,我们只需通过开关大小写而不使用break语句,以便满足所有db升级。
我需要一个基于文本的python游戏的帮助,我已经完成了大部分工作,我可以在所有3个房间之间移动,顶部有“大厅”,然后往南走“卧室”往东走“地窖”我可以往回走,所以往西走“卧室”向北走,最后回到大厅。 问题是,如果我在大厅里输入东,它会跳到地窖,而不是说无效移动,那里有一面墙。我想做的是 显示玩家当前所在房间的输出。决策分支告诉游戏如何处理不同的命令。命令可以是在房间之间移动(如向北、向南、向东或
我目前正在创建一个冒险游戏,你通过输入命令(北,南)通过一个地牢的房间移动。所以我试图用字典把每个房间连接在一起,这样我就可以用“北”、“南”等键来移动这些房间。但我似乎不明白。有什么想法吗?