2013-11-03 64 views
0

我一直在發短信的恐怖基於adenture遊戲&我有一些庫存問題。庫存是一個可以在任何函數中調用的數組。我有種感覺,但是我每次都用新的庫存重新填充我的陣列。我可以利用一些幫助,這些都是我的庫存功能:基於文本的冒險遊戲的庫存問題蟒蛇

#Populating an aray with items to be used throughout the game. 
def createItems(): 
    items = range(0, 11) 
    if items[9] != "full": 
     items[1] = ("Axe") 
     items[2] = ("Gas") 
     items[3] = ("keys") 
     items[4] = ("gun") 
     items[5] = ("note") 
     items[9] = ("full") 
     return items 
    else: 
     return items 
# this function is going to check if the item passed to it is still in the array 
def checkItems(item): 
    list = createItems() 
    itemC = item 
    for i in range (0, 11): 
    if list[i] == itemC: 
     return ("no") 
     break 

def createInventory(): 
    inv = range(0 , 11) 
    inv[10] = ("made") 
    if inv[10] != ("made"): 
     for i in range (0, 11): 
     inv[i] = 0 
    return inv 

def stockInventory(item): 
    inv = createInventory() 
    for i in range (0, 11): 
    if inv[i] == 0: 
     inv[i] = item 
     break 
     return inv 

def checkInventory(item): 
    itemC = item 
    inv = createInventory() 
    for i in range(0, 11): 
     if itemC == inv[i]: 
      return ("yes") 
+2

請正確縮進您的代碼,這是不可能的。 –

+0

只是做比較遺憾的是@DanielRoseman – Blank1268

+0

這將是很難回答,因爲在這段代碼四五真的根本誤解。我建議你看看部分http://docs.python.org/2/tutorial/ 1-5,然後回來這個... – YXD

回答

1

這可能不是答案,但是從我可以從代碼&問題使出來,這應該幫助。請注意您的代碼&中的差異&會相應地做出更改。

# Main Inventory 
Inventory = createInventory() 

# Populating given inventory aray with items to be used throughout the game. 
def createItems(inv): 
    items = inv 
    items[1] = "Axe" 
    items[2] = "Gas" 
    items[3] = "keys" 
    items[4] = "gun" 
    items[5] = "note" 
    items[9] = "full" 

# Check if the item passed to it is still in the inventory array 
def checkItems(item): 
    items = Inventory 
    for i in range(len(items)): 
     if items[i] == item: 
      return "yes" 
    return "no" 

def createInventory(): 
    inv = range(11) 
    inv[10] = "made" 
    return inv 

def stockInventory(item): 
    inv = Inventory 
    for i in range (11): 
     if inv[i] == 0: 
      inv[i] = item 
      break 
    return inv 

def checkInventory(item): 
    inv = Inventory 
    for i in range(0, 11): 
     if item == inv[i]: 
      return "yes" 
    return "no" 
+0

謝謝,這是我正在尋找。我不知道Python支持全局變量。壞老師... – Blank1268

+0

檢查了這一點 - http://docs.python.org/2/faq/programming.html#what-are-the-rules-for-local-and-global-variables-in-python –

0

你可以讓使庫存爲boolen值。

inventory = {"sword":True, "axe":True} 

這也有助於爲您的廣告資源製作類。

class Weapon(): 

    def attack(self, monster): 
     pass 

class Axe(Weapon): 
    def __init__(self): 
     self.name = "axe" 
     self.damage = 1 

    def attack(self, monster): 
     monster.hp -= self.damage