2013-01-04 350 views
0

我对Python很新。当我等待一些东西给我的Pi时,在Windows上运行。 我正在写一个游戏,用户通过文本输入穿过塔楼。只允许用户在Python中执行一次函数?

用户可以使用“a”“d”“w”环顾房间收集sutff。但如果用户已经看过“a”(这是“向左看”),我需要让他们知道他们已经在那里。 这是我的代码,但它有一个明显的缺陷。

#if user hits 'a' they look left 
def roomOneLeft(): 
    print '-- You search some loose rubble and find some cloth' 
    return roomOneMoves() 

#where the user selects a movement 
def roomOneMoves(): 
    left = 0 
    move = raw_input("") 
    if left == 1: 
     print 'you have already looked here' 
     return roomOneMoves() 

    if move == "a": 
     left = left + 1 
     roomOneLeft() 

我可以设置“左”静态?蚂蚁研究如何将它设置为像java这样的全局变量。这显然不起作用,因为它返回时,它将自己设置为0.任何帮助将不胜感激!

回答

2

您可以将“左”定义为全局。就像这样:

left = 0 

#where the user selects a movement 
def roomOneMoves(): 
    global left 

    move = raw_input("") 
    if left == 1: 
     print 'you have already looked here' 
     return roomOneMoves() 

    if move == "a": 
     left = left + 1 
     roomOneLeft() 
+0

你是一颗宝石!谢谢 –

+0

最好为你的问题选择一个答案,以便你将继续得到支持...... – ATOzTOA

1

为了使变量全球,声明在模块范围,然后改变它在功能,使用global关键字。

left = 0 
def some_func() 
    global left 
    left = 1 

这将允许您编辑函数内的全局变量。

要解决您的static变量问题,我相信你不能在python中这样做。请参阅this问题。