so I am trying again to post this in a correct manner, but I am struggling with adding items to an inventory for a very simple text based game for a class project. The output should be as folllows:
You are in (room)
Inventory: []
You see a (item)
What do you wish to do?
In my game, the player will type a command like get Sword to pick up an item. If that item isnt in the room they are in it should output You cant get that item here. Once the player gets the item in the room, it should be added into the inventory and removed from the room so that the input reads:
You are in (room)
Inventory: [Sword]
You dont see anything useful
What do you wish to do?
I am having trouble getting the inventory to update and then the item no longer being in the room. When I am in the room I try to get the item and it says You cant get that item here even if the item is in the room.
Below is a simplified version of my code, any help is appreciated greatly.
# A dictionary for the simplified text game that links a room to other rooms.
rooms = {
'Entrance Hall': {'North': 'Great Hall', 'East': 'Gallery', 'West': 'Library', 'item': 'None'},
'Library': {'East': 'Entrance Hall', 'item': 'Book'},
'Gallery': {'West': 'Entrance Hall', 'item': 'Sword'}
}
instructions = 'To move type: go North, go East, go West, go South' \
'to get items type get Item, ex: get Sword\n '
directions = ['go North', 'go South', 'go East', 'go West']
pick_up_items = ['get Ale', 'get Book', 'get Armor', 'get Sword', 'Necromancer', 'get Knife', 'get Candle']
print(instructions)
current_room = 'Entrance Hall'
item_in_room = 'None'
inventory = []
while True:
print('You are in the {}.'.format(current_room))
print('Inventory:', inventory)
if item_in_room == 'None':
print("You don't see anything useful")
else:
print('You see a', item_in_room)
# gets the users input
command = input('\nWhat do you wish to do? ') # this controls the movement
if command in directions:
command = command.split()[1]
if command in rooms[current_room].keys():
current_room = rooms[current_room][command]
item_in_room = rooms[current_room]['item']
else:
# if the player inputs a bad movement
print('You cant go that way!')
# Checks to see if the player types a 'get' command and adds the item in the room to the players inventory.
if command in pick_up_items:
command = command.split()[1]
if command in rooms[current_room].keys():
inventory.append(current_room['item'])
else:
# if the player inputs a item not in the room
print('You cant get that item here!')