2017-01-10 1 views
0

So habe ich aNum als patches-eigenen Attribut, und in meinem Code habe ich ask patch 0 -5 [set aNum (aNum - 1)] aber der Patch hat nur Änderungen seiner aNum auf -1.Code reagiert nicht auf Änderung in Attribut

Wie kann ich sicherstellen, dass es nimmt, was aNum es zuvor zugewiesen wurde und stattdessen von diesem subtrahiert?

Vielen Dank!

Antwort

0

Es tut, was Sie erwarten. Die Frage ist also, warum siehst du nicht, was du erwartest. Die Antwort darauf wird als "Debugging" bezeichnet. Eine einfache Möglichkeit zum Debuggen besteht darin, mithilfe der Anweisung print die Logik Ihres Programms zu überprüfen. (Ein anderer Weg ist error zu Flagge unerwarteten Programmzustand zu verwenden.) Zum Beispiel

globals [testPatch] 
patches-own [aNum] 

to decrementANum [#patch] 
    ask #patch [set aNum (aNum - 1)] 
end 

to test 
    set testPatch patch 0 -5 
    repeat 5 [ 
    let _before [aNum] of testPatch 
    decrementANum testPatch 
    print (word "before: " _before "; after: " [aNum] of testPatch) 
    ] 
end 

Generell Schreiben eine solche minimale umluftunabhängigem Beispiel macht eine bessere Frage. Höchstwahrscheinlich werden Sie Ihren Fehler finden, wenn Sie versuchen, das Beispiel zu erstellen.