gpt4 book ai didi

基于 Python 文本的游戏房间到房间的移动

转载 作者:行者123 更新时间:2023-12-04 07:50:32 25 4
gpt4 key购买 nike

您好,我刚开始使用 Python 编写和创建基于文本的游戏。我正在编写代码以从一个房间移动到另一个房间。我需要一些帮助来清理我到目前为止所做的事情。我通过即时反馈程序运行它并获得了这些提示,但不确定如何更正它:

  • Great Hall 字符串是主词典中的一个关键字。修改代码,使其不是主字典中的键。
  • 它说它不能对我的代码进行分类(不知道那是什么意思)
  • 将多个打印命令整合到一个函数中
  • 使用非复杂条件使条件更简单
  • 更好的做法是使用 while True: 和 break 保留字来在您需要它停止时停止循环

数据设置

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.")

最佳答案

顺便说一句,您将在 Code Review Stack Exchange 上获得更多帮助。 https://codereview.stackexchange.com/

首先,您的代码不起作用 - While 循环中的代码没有缩进。

这会抛出一个错误:

while True:
print("hi")

这不会:

while True:
print("hi")
  • 更好的做法是使用 while True: 和 break 保留字来在您需要它停止时停止循环

您似乎已经在使用它,但由于缩进错误而没有注意到它。

  • Great Hall 字符串是主词典中的一个关键字。修改代码,使其不是主字典中的键。

这可能意味着制作多个词典而不是将它们全部放在一个词典中,但这并不重要所以我不知道它为什么会提示。

  • 它说它不能对我的代码进行分类(不知道那是什么意思)我也不知道;请提供一些背景信息。

  • 将多个打印命令整合到一个函数中

现在这已经失控了。我不知道为什么它告诉你这样做,但你可以为此使用一个元组:

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() 调用)

关于基于 Python 文本的游戏房间到房间的移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67005797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com