我想在Python V 3.4.3中为我的游戏制作一个库存系统

时间:2015-09-09 15:55:13

标签: python

我想在我的游戏中制作一个库存系统,它确实会向库存中添加商品,但是当我希望它打印出库存中商品的名称时,它会返回:

这是您的库存: [<'class main .Item'>]

看起来它正在将Item类复制到库存清单中,但我不知道如何修复它有人可以告诉我如何打印项目的名称而不是类的副本?

这是我的代码:

import sys     #Imports the system commands which makes it possible to terminate the program
import time    #Imports the time module to allow delays in script
import os      #Imports os to make it possible to play music/sound
import random

print('Welcome to the Text Adventure login screen') #Login screen welcome message

username1 = input ('Please set a username: ') #Setting the username
password1 = input ('Please set a password: ') #Setting the password


username2 = input ('Please enter your username: ') #Entering the saved username
if username2 == username1 :
    print('Please enter password to prove it\'s ' + username1) #Prints confirmation messages

if username2 != username1:          #Checks if password's incorrect if so, Terminates the program
    print ('Username Incorrect!!!')
    sys.exit()


password2 = input ('Please enter your password: ') #Entering the saved password
if password2 == password1 :
    print ('Password Correct!')
if password2 != password1 :                    #Checks if password is incorrect, if so terminates the program
    print ('Password incorrect you hacker!!!')
    sys.exit


print ('WELCOME ' + username1 + ' TO TEXT ADVENTURE V 1.0')  #Prints welcome message to text adventure
os.system("start F:\Python\Adventure.mp3")

    #http://codereview.stackexchange.com/questions/57438/game-inventory-system   Website
class Item(object):
    def __init__(self, name, value, quantity = 1):
        self.name = name
        self.value = value
        self.quantity = quantity
def itemadd(self):
    inventory.append(Item)

class Weapon(Item):
    def __init__(self, name, value, damage, quantity = 1):
        Item.__init__(name, value, quantity)

        self.damage = damage

def weaponadd(self):
    weapons.append(Weapon)

def Wooden_Sword(Weapon):
    name = "Wooden Sword"
    value = 10
    damage = 25
def Lighter(Item):
    name = "Lighter"
    value = 5
def Sharp_Stick(Weapon):
    name = "Sharp Stick"
    value = 5
    damage = 15
def startRoom():
    global inventory 
    global character_Cash
    global character_Health
    global character_Damage_No_Weapon
    global weapons
    global weapon_Choice
    global weapon_Add
    global item_Add
character_Health = 1000
inventory = []
character_Cash = 200.00
character_Damage_No_Weapon = random.randint(1, 15)
weapons = []
goblin_Damage = random.randint(1, 10)
wizard_Damage = random.randint(1, 50)

time.sleep(5)
print ('You are in a cottage in Loch Scyze in Scotland where there is a large wooden chest in the room')
time.sleep(5)
print ('Your character\'s HP is %d' % character_Health)
time.sleep(5)
print ('Your character has $%d' % character_Cash)
time.sleep(5)
print ('Press [o] to open chest or press [e] to exit cottage')
choice1 = input ('What is your choice? ')

if choice1 == "e" :
    print ('You have exited the cottage')
    time.sleep(5)
    print ('To go North press [n], East [e] or West [w]')
    choice2 = input ('What is your choice? ')

    '''if choice2 == "e" :
        print ('''







    if choice2 == "n" :
        print ('You have entered the woods')
        time.sleep(5)

        print ('Press [w] to equip weapon or [e] to fight barefist')
        choice6 = input()
        if choice6 == "w" :
            if weapons == [] :
                print ('You have no weapons yet!')
                time.sleep(2.5)
            else :
                print ('These are your weapons: ')
                print (weapons)
                weapon_Choice = input ('Which weapon do you want to use? Type in weapons[Numberinlist] ')
                del weapon_Choice


        goblin_Health = 50
        print ('You have discovered a goblin press [a] to attack or [p] to pay $10 to escape ')
        print ('The goblin\'s health is %d' % goblin_Health)
        if choice6 == "e" :
            print ('You have no weapon equipped')
        choice3 = input ('What is your choice? ')

        if choice3 == "p" :
            character_Cash -= 10
            print ('You have successfully escaped')
            print ('You now have $%d' % character_Cash)
            print ('To go North press [n]')
            choice4 = input ()



            if choice4 == "n" :
                print('You have moved North')
                time.sleep(2.5)
                print ('You hear a loud noise and start running')
                os.system("start F:\Python\Forest.mp3")
                time.sleep(16.5)
                print ('...')
                time.sleep(16.5)
                os.system("start F:\Python\Shotgun.mp3")
                time.sleep(1)
                os.system("start F:\Python\Shell_Falling.mp3")
                print ('You hear someone shoot at you, you keep running')
                time.sleep(1)
                os.system("start F:\Python\Forest.mp3")
                time.sleep(16.5)
                print ('...')
                time.sleep(16.5)
                print ('OH NO!!! You have run over a death trap set up by a hunter')          
                time.sleep(5)
                os.system("start F:\Python\gameover.wav")
                print('GAME OVER')
                time.sleep(5)
                sys.exit()


        if choice3 == "a" :
            while goblin_Health | character_Health >= 0 :
                if goblin_Health | character_Health <= 0 :
                    print ('The Goblin is dead!')
                    time.sleep(2.5)
                else:
                    print ('You take a hit at the goblin')
                    goblin_Health -= character_Damage_No_Weapon
                    os.system("start F:\Python\Punch_1.mp3")
                    if goblin_Health | character_Health <= 5 :
                        print ('The Goblin is dead!')
                        time.sleep(2.5)
                    else :
                        print ('The goblin\'s health is %d' % goblin_Health)
                        time.sleep(2)
                        print ('The goblin attacks you!')
                        os.system("start F:\Python\Punch_2.mp3")
                        character_Health -= goblin_Damage
                        print ('Your health is %d' % character_Health)
                        time.sleep(2)


if choice1 == "o" :
    print ('You have opened a chest')
    time.sleep(2.5)
    print ('In the chest there is a wooden sword, $27, a lighter and a sharp stick')
    print ('Type y to take the items or n to leave them')
    pickup1 = input()
    if pickup1 == "y":
        weaponadd(Wooden_Sword) 
        itemadd(Lighter)           
        weaponadd(Sharp_Stick)
        os.system("start F:\Python\Coin.wav")
        character_Cash += 27
        print ('This is your inventory:')
        print (inventory)
        print ('These are your weapons:')
        print(weapons)
        print ('This is your cash balance:')
        print ('$%d' % character_Cash)
        time.sleep(15)

else:
    print ('You leave the items in the chest')
print ('In your inventory there is:')
print (inventory)
print ('You have $%d' % character_Cash)
print ('You are still in the cottage')
time.sleep(5)
print ('Press [e] to exit cottage')
choice5 = input ()
if choice5 == "e" :
    print ('You have exited the cottage')

2 个答案:

答案 0 :(得分:1)

for item in inventory
  print item.name

就是这样。

答案 1 :(得分:0)

我不懂Python,但根据我对其他语言的了解,我觉得你可能会打印数组而不是内容。

要打印清单数组的内容,您需要循环遍历它。

以下是有关如何在Python中循环数组的一些信息:

6.3. Iterating with for Loops