Ich habe eine Box gebundene Welt in Netlogo und meine Schildkröten bewegen sich so, wie ich will, aber einige bleiben an der Wand hängen, die andere zieht (ich benutze das Flocking-Modell als Rückgrat), bis alle Schildkröten an einer Wand kleben und sich nicht mehr bewegen. Ich habe versucht, in Go einen "wall_jump" einzubauen, aber es hilft nicht, wenn zu viele Flockkameraden an der Wand stehen, also habe ich einen weiteren Block eingebaut, um Flockmates von der Wand abprallen zu lassen, aber das schien keine Wirkung zu haben. Wenn Sie das gesamte Problem neu erstellen möchten, öffnen Sie das Beflockungsmodell und schließen Sie die Weltgrenzen in.Wie schleppe ich Schildkröten von der Weltgrenze in Netlogo
Wie haben andere dieses Problem gelöst?
to wall_jump
ifelse any? flockmates
[
if ycor >= max-pycor * 0.95 [set heading (random-normal 180 2)]
if xcor >= max-pxcor * 0.95 [set heading (random-normal 270 2)]
if xcor <= min-pxcor * 0.95 [set heading (random-normal 90 2)]
if ycor <= min-pycor * 0.95 [set heading (random-normal 0 2)]
]
[if ycor >= max-pycor * 0.95 [set heading (random-normal 180 2)]
if xcor >= max-pxcor * 0.95 [set heading (random-normal 270 2)]
if xcor <= min-pxcor * 0.95 [set heading (random-normal 90 2)]
if ycor <= min-pycor * 0.95 [set heading (random-normal 0 2)]
]
end
Was ist der Unterschied zwischen Ihrer if-Anweisung und Ihrer else-Anweisung? – mattsap
Flockmates ist eine Übertragung aus dem "Beflockungs" -Modell, dem ich zugrunde lege, es gehört den Schildkröten. Grundsätzlich identifizieren sie Schildkröten in der Nähe von ihnen als Flockkameraden, dann bestimmen sie ihre neue Überschrift basierend auf dem durchschnittlichen Kurs ihrer Schwarmkameraden. Mit dieser Aussage wollte ich nur sagen, ob du irgendwelche Schwarmkameraden in der Nähe hast oder nicht, entscheide dich für eine neue Überschrift auf die gleiche Weise, weil du an einer Wand festgeklebt bist. Es funktioniert nicht obwohl – Jesse001