I'm creating a room exploration game with Python but am having issues with item collection and the win condition being met (collecting all items to 'win' and losing if not all items are collected). Room movement, help and quitting function but I'm confused where to begin with items. I created an elif for 'get' to collect items but it didn't work. If I could get help with getting items from my dictionary would help a lot. Thank you.
rooms = {'Start room': {'name': 'Start room', 'west': 'West room', 'east': 'East room', 'north': 'Hallway',
'text': 'You are in the Start room.'},
'Hallway': {'name': 'Hallway', 'north': 'Hallway2', 'item': 'chips',
'text': 'You are in the Hallway.'},
'Hallway2': {'name': 'Hallway2', 'north': 'Hallway3', 'item': 'soda',
'text': 'You are in the Hallway2.'},
'Hallway3': {'name': 'Hallway3', 'north': 'Final room', 'item': 'stick',
'text': 'You are in the Hallway #3.'},
'Side room': {'name': 'Side room', 'east': 'Hallway3', 'item': 'cookie bug',
'text': 'You are in the Side room.'},
'Final room': {'name': 'Final room', 'south': 'Hallway3',
'text': 'You are in the Final room.'}, # boss room
'West room': {'name': 'West room', 'east': 'Start room', 'item': 'crown',
'text': 'You are in the West room.'},
'East room': {'name': 'East room', 'west': 'Start room', 'item': 'cape',
'text': 'You are in East room.'}}
def get_item(item_wants, current_room, inventory):
if 'item' in rooms[current_room]:
item_can_get = rooms[current_room]['item']
if item_wants != item_can_get.lower():
print(f'There is no {item_can_get} in this room')
else:
print(f'You just picked up {item_wants}')
inventory.append(item_wants)
return item_wants
def help_file(DIRECTIONS):
print(f"Use {DIRECTIONS} to move! If you would like to quit, type 'quit'.")
def get_input():
arg = '' # default if no arg
input_list = input('Enter move, get or exit:').split()
command = input_list[0]
if len(input_list) > 1:
arg = input_list[1]
return command, arg
def main():
inventory = []
DIRECTIONS = ['north', 'south', 'east', 'west']
current_room = 'Start room'
while True:
# location
print('You are in {}.'.format(current_room))
print("Inventory:", inventory)
# get user input
c, direction = get_input()
# moving
if c == 'move' and direction in DIRECTIONS:
if direction in rooms[current_room]:
current_room = rooms[current_room][direction]
else:
print(f'You cannot go {direction} from this room')
elif c == 'get':
pass
elif c == 'help':
help_file(DIRECTIONS)
elif c == 'quit':
print('Game quitting...')
break
else:
print('Invalid statement')
if current_room == 'Final room' and len(inventory) < 6:
print('You lost ! You forgot to collect all the items! GAME OVER...')
break
if current_room == 'Final room' and len(inventory) >= 6:
print('You did it! You collected all the items and are with your cool new friend! The end!')
break
print()
main()