如何+1先前的分配(Python 3.3)

时间:2015-06-27 16:53:49

标签: python variables python-3.3 assign text-based

注意: 这不是

的重复

Python integer incrementing with ++

我尝试了w_sword += 1,但仍显示为0。

好的,这就是我现在的代码。

#creates random monsters with xp points, leveling up player, and adding upgrades

#imports
from clint.textui import colored, puts
import random

def game():
    sticks = 2
    stumps = 2
    stone = 0
    iron = 0
    gold = 0
    diamond = 0
    platinum = 0
    w_sword = 0
    w_shield = 0

    items = ('sticks:' + str(sticks) + ' stumps:' + str(stumps) + ' stone:' + str(stone) + ' iron:' + str(iron) + ' gold:' + str(gold) + ' diamond:' + str(diamond) + ' platinum:' + str(platinum) + ' Wooden sword(s):' + str(w_sword) +
    ' wooden shield(s):' + str(w_shield))       

    #start of the game    
    def start_game():
        print('           Hello player! Welome to a text based game involving killing monsters, leveling up, crafting weapons, and upgrading weapons!!!')
        print(' To get started enter in (i)inventory (c)craft items (d)description of items (m)types of monsters or (f)fight monsters.')
        print('                  ENTER (help) FOR HOW THE GAME WORKS')
        print('                              ENTER(?) FOR TO PRINT THIS AGAIN')
        print(' WHILE YOU ARE IN A CATEGORY SUCH AS (i)inventory PRESS (?) CAN BE USED TO GO BACK AND GO TO ANOTHER CATEGORY')
    start_game()

    main_In = input()

    level = 0
    Pxp = 0
    gold = 0

    if main_In == ('c'):
        ws_sticks = 2
        ws_stumps = 1

        def craft():
            print('Would you like to craft an item??')
            print('( Red = uncraftable )')
            print('( Green = craftable )')
            print('( Type items in lowercase )')

            if sticks < ws_sticks:
                puts(colored.red('Wooden sword'))
            else:
                puts(colored.green('Wooden sword'))
            if stumps < ws_stumps:
                puts(colored.red('Wooden shield'))
            else:
                puts(colored.green('Wooden shield'))

        craft()
        C_item = input()

        def re_craft():
            print('press ENTER to go back to the start screen, or enter c to craft an(other) item.')
            cor_go = input()
            if cor_go == ('c'):
                craft()
                C_item = input()
            else:
                game()

        if C_item == ('no'):
            print('press ENTER to go back to the start screen')
            input()
            game()

        if C_item == ('wooden sword') and sticks >= ws_sticks:
            print('Wooden sword added to your inventory')
            re_craft()

        if C_item == ('wooden sword') and sticks < ws_sticks:
            print('You need ' + str(ws_sticks - sticks) + ' stick(s) to craft a wooden sword')
            re_craft()

        if C_item == ('wooden shield') and stumps >= ws_stumps:
            print('Wooden shield added to your inventory')
            re_craft()

        if C_item == ('wooden shield') and stumps < ws_stumps:
            print('You need' + str(ws_stump - stumps) + ' stumps to craft a wooden shield.')
            re_craft()
        while ('Wooden shield added to your inventory'):
            w_shield = +1
        while ('Wooden sword added to your inventory'):
            w_sword = +1

    if main_In == ('i'):
        puts(colored.yellow('Level: ' + str(level)))
        puts(colored.yellow('xp: '  + str(Pxp)))
        puts(colored.yellow('gold:' + str(gold)))
        puts(colored.yellow('Items: ' + str(items)))
        puts(colored.yellow('press ENTER to return to the start screen'))
        input()
        game()

    if main_In == ('?'):
        game()

game()

现在你可以看到,w_sword和w_shield都是= 0是否正确?

在w_sword = +1和w_shield = +1的地方,我认为问题出在哪里。

当你运行程序时,输入c,然后制作木剑/盾牌,一旦你去你的(i)库存,它应该自动添加1到w_sword / w_shield。但出于某种原因,当你回到你的(i)库存时,w_sword / w_shield(取决于你制作的那个)会出现0。

我认为这段代码的作用主要是因为在项目赋值中,它包含str(w_sword)和str(w_shield)以及其他。因此,当你制作像木剑或木盾一样的物品时,它的str(w_shield)或str(w_sword)应该是1。

有谁知道我的问题是什么? 我在标题中使用了python 3.3。

1 个答案:

答案 0 :(得分:2)

语法为w_sword += 1,而非w_sword =+ 1