'Tupel' nicht aufrufbar-Fehler

Ich nun, diese Frage wurde schon mehrfach gefragt. Aber die Antworten scheinen nicht zu lösen mein problem.
Bekomme ich eine Art Fehlermeldung, 'Tupel' - Objekt ist nicht aufrufbar. Bekomme ich diese auch wenn das Tupel in der Liste ist durch Kommata getrennt in der richtigen Art und Weise:

def aiMove(b):
    movesList = moves(b, -1)
    heuristic = []
    if movesList:
        for m in movesList:
            bt = copy.deepcopy(b)
            print("bt: ", bt)
            bt[m[0]][m[1]] = -1         
            h = heat[m[0]][m[1]]
            for move in m[2]:
                i=1;
                try:
                    while (-1* bt[m[0] + i*move[0]][m[1] + i*move[1]] < 0):
                        bt[m[0] + i*move[0]][m[1] + i*move[1]] *= -1    
                        bt[m[0] + i*move[0]][m[1] + i*move[1]] += -1    
                        i += 1;
                except IndexError:
                    continue

            alpha = max(float('-inf'), alphabeta(bt, depth-1, h, float('-inf'), float('inf'), 1))
            heuristic.append(alpha)
            if (float('inf') <= alpha):
                break
            selectedMove = movesList[int(heuristic.index(max(heuristic)))]
            move(b, selectedMove, -1)
    else:
        print ("The AI can't move!")
            return []

selectedMove ist (3, 2, [(0 , 1)]) zum Beispiel. Die bewegt sich () - Funktion gibt eine Liste der bewegt sich wie der Letzte Wert für selectedMove. Es ist ein alpha-beta-pruning Umsetzung für game-tree search. Die move () - Funktion tatsächlich bewegt sich das Stück an, dass position und aktualisiert die platine fertig-Computer " drehen.
die variable b stellt die Werte auf den aktuellen Spielplan
Jede Umwandlung die ich versuchen (d.h. Kraft selectedMove eine Liste an sich, etc..) geben den gleichen Fehler in der Zeile "move(b, selectedMove, -1)"

Nicht jemand sehen, was falsch sein kann?

Microsoft Windows [Version 6.1.7600]  
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python33\lib\tkinter\__init__.py", line 1489, in __call__
    return self.func(*args)
  File "C:\Users\Loek Janssen\Documents\GitHub\CITS1401-Project\DrawBoard.py", line 131, in eventfun
    placePiece(x, y, b, n)
  File "C:\Users\Loek Janssen\Documents\GitHub\CITS1401-Project\DrawBoard.py", line 119, in placePiece
        project2.aiMove(b)
  File "C:\Users\Loek Janssen\Documents\GitHub\CITS1401-Project\project2.py", line 225, in aiMove
    move(b, selectedMove, -1)
TypeError: 'tuple' object is not callable
Im wesentlichen bedeutet dies, dass ein Tupel ist nicht eine Funktion. Es ist möglich, dass Sie anrufen selectedMove irgendwo in Ihrem move Funktion wie selectedMove(args).
Ohne zu sehen, Ihren vollständigen traceback wir Schießen in der Dunkelheit, aber eine sehr häufige Ursache für diese Art von Fehler ist die Neuzuweisung der name für eine der integrierten Funktionen wie max zu beziehen, etwas anderes als eine Funktion (in diesem Fall ein Tupel). Ich würde überprüfen Sie Ihren code, um sicherzustellen, dass Sie niemals so etwas wie max = (0, 1) oder ähnliches.

InformationsquelleAutor Loek Janssen | 2014-05-27

Schreibe einen Kommentar