난 당신이 plot-manhattan-distance
절차에서 뭘 하려는지 모르겠습니다. 상대적으로 단순해야하는 무언가에 대한 복잡한 접근처럼 보이지만 어쩌면 내가 당신의 목적을 오해했을 수도 있습니다.
globals [
zombie
human
]
to setup
clear-all
ask n-of 2 patches [ sprout 1 ]
set human turtle 0
ask human [ set shape "person" ]
set zombie turtle 1
ask zombie [ pen-down ]
end
to go
ask human [ flee zombie ]
ask zombie [ pursue human ]
end
to pursue [ target ]
face target
set heading first sort-by [abs (?1 - heading) < abs (?2 - heading)] [0 90 180 270]
fd 1
end
to flee [ pursuer ]
face pursuer
rt 180
fd 0.5
end
고기가 pursue
절차에 : 여기 온 문제를 접근 할 방법이다. 좀비가 인간이 어디로 갈지 예측할 수 없기 때문에 좀비는 일반적인 방향으로 움직이려고합니다. 그것은 직접 인간을 직면하여 시작 (편리한 NetLogo face
기본). 그러나 아마도 4 가지 추기경 중 한 방향으로 만 움직일 수 있기 때문에 가장 바람직한 방향 즉, 현재 (이상적인) 방향과 가장 다른 방향을 선택해야합니다. 이것은 sort-by [abs (?1 - heading) < abs (?2 - heading)] [0 90 180 270]
표현식이하는 것입니다. 절대적인 차이를 현재 표제와 비교하여 경로 목록을 정렬합니다. 이 정렬 목록의 첫 번째 항목은 차이가 가장 작은 항목이므로 좀비가 사용해야하는 항목입니다.
현재 구현에서는 인간이 좀비를 멀리하려하지만 플레이어 제어 코드로 쉽게 대체 할 수 있습니다.
코드가 많습니다. –