2016-05-24 9 views
4

Ich habe 5 Prozeduren, die ein Agent ausführen soll, aber ich brauche sie, um die Reihenfolge, in der sie ausgeführt werden, zu randomisieren.Randomisieren der Reihenfolge, in der ein Agent eine Prozedur aufruft?

Zum Beispiel:

1) möglich Bestellung

ask turtles [ move eat breed search spawn] 

2) Eine andere mögliche

 ask turtles [spawn eat move search breed] 

3) eine weitere mögliche Anordnung der Einrichtung:

ask turtles [search breed eat move spawn] 

usw. . Gibt es eine effiziente Möglichkeit, die Prozeduren in zufälliger Reihenfolge auszuführen?

Antwort

5

Sie konnten eine Liste von Aufgaben machen, die Liste mischen, dann jede Aufgabe in der Liste aus:

let procedures (list (task spawn) (task eat) (task move) (task search) (task breed)) 
ask turtles [foreach shuffle procedures [run ?]] 
+1

Sie einen echten Mensch Matt sind. Danke vielmals. –