2016-12-15 86 views
0

所以我正在用tkinter製作一個tic tac toe遊戲。然而,當我碰到轉彎值時,我得到一個屬性錯誤:'功能'對象沒有'調用'的屬性。我這樣做,以便計算機不會跳過輪到計算沒有裝飾器點擊按鈕的次數(Python)

def player_move(widget): 
    if widget["o"] not in ("o", "x"): 
     widget["text"] = "o" 
     widget["state"] = "disabled" 
     player_move.called += 1 #The part I want to add to 
     computer_move() 

def computer_move(): 
    # computer moves 2nd time 
    if i["text"] == " ": 
     i["text"] = "x" 
     i["state"] = "disabled" 
    else: 
     c["text"] = "x" 
     c["state"] = "disabled" 
    if player_move.called == 1 and c["text"] == "x": 
     print("whgwhgg") #Just for testing 
+0

外部函數創建普通變量'player_move_called = 0'(不是一些奇怪的'player_move.called'帶點) - 它會創建一個全局變量,起始值爲'0'。然後在'player_move'裏面使用'global player_move_called'來通知函數你想使用外部/全局變量而不是本地變量。在'computer_move'中也使用'player_move_called',但是你不必使用'global player_move_called',因爲你不會修改'player_move_called'的值 – furas

回答

0

首先,你必須創建player_move.called有一定的價值添加+1這個變量之前(但創造它創建功能player_move()後)

def player_move(widget): 
    # ... 
    # add 1 to existing variable 
    player_move.called += 1 #The part I want to add to 

# create variable with some value 
player_move.called = 0