簡體   English   中英

簡單的游戲清單

[英]Simple Game Inventory

所以我再次嘗試以正確的方式發布此內容,但我正在努力為 class 項目的非常簡單的基於文本的游戲添加項目到庫存中。 output 應如下所示:

You are in (room)
Inventory: []
You see a (item)
What do you wish to do?

在我的游戲中,玩家會輸入一個命令,比如get Sword來撿起一個物品。 如果那個項目不在房間里,他們應該在里面 output You cant get that item here 一旦玩家在房間里拿到物品,它應該被添加到庫存中並從房間中移除,以便輸入顯示:

You are in (room)
Inventory: [Sword]
You dont see anything useful
What do you wish to do?

我無法更新庫存,然后該物品不再在房間里。 當我在房間里時,我試圖拿到該物品,它說即使該物品在房間里You cant get that item here 以下是我的代碼的簡化版本,非常感謝任何幫助。

# 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!')

據我所知,您對物品的檢查是錯誤的。 您的項目在rooms[current_room]['item']而不是rooms[current_room].keys()

if command == rooms[current_room]['item']:
    inventory.append(rooms[current_room]['item']) #another error i found out
    rooms[current_room]['item'] = 'None' #make sure that you check that command isn't None or it will be added as an Item
# other stuff

如果您打算在一個房間中放置多個項目,我建議您將所有字典中的item鍵轉換為列表,以便於檢查。 此外, go item也將通過您的方向檢查並引發錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM