我需要添加一个显示当前可能走法的函数。我不知道该怎么做。当我不希望打印语句出现时,我也遇到了问题。如果我输入“获取项目”输入,它会打印“你不能那样做”。陈述。该声明应该只适用于无效命令。我是 Python 的新手,并不太了解我在做什么。请帮助。
# Dictionary for rooms and directions
rooms = {
'Living Room': {'West': 'Garage', 'East': 'Kitchen', 'North': 'Bedroom', 'South': 'Den', 'item': 'None'},
'Garage': {'East': 'Living Room', 'item': 'Candle'},
'Bedroom': {'East': 'Bathroom', 'South': 'Living Room', 'item': 'Lighter'},
'Bathroom': {'West': 'Bedroom', 'item': 'Mirror'},
'Kitchen': {'North': 'Pantry', 'West': 'Living Room', 'item': 'Bowl of water'},
'Pantry': {'South': 'Kitchen', 'item': 'Salt'},
'Den': {'East': 'Basement', 'North': 'Living Room', 'item': 'Spellbook'},
'Basement': {'West': 'Den', 'item': 'None', 'villain': 'Ghost'}
}
current_room = 'Living Room' # Starting room
# Game instructions
def instructions():
print('Collect all 6 items and defeat the ghost!')
print('To move rooms, type: "North, South, East, or West".')
print('To collect items, type: "get _item_".')
print('To exit game, type: "Exit".')
# Player status
def show_status(current_room, inventory):
print('----------------------')
print('Your are in the', current_room)
print('Inventory: ', inventory)
print('You found {}'.format(rooms[current_room]['item']))
print('----------------------')
def move_rooms(current_room, direction): # Loop for location
current_room = rooms[current_room]
new_room = current_room[direction]
return new_room
instructions()
direction = ['North', 'South', 'East', 'West']
inventory = []
# Game loop
while True:
show_status(current_room, inventory)
direction = input('\nWhat do you want to do?: ')
if current_room in ['Basement']: #Boss room loop
if len(inventory) == 6:
print('You cast a spell and freed the ghost! You win!')
else:
print('The ghost attacks you! You lose!')
break
item = rooms[current_room].get('item') # get the current item, or None if there isn't one
if item is not None and direction == 'get ' + item:
if item in inventory:
print('You already have this item in your inventory!')
else:
inventory.append(item)
if direction in rooms[current_room]: #valid move
current_room = move_rooms(current_room, direction)
if direction == 'Exit': # Exit game
print('Thanks for playing!')
break