0
"거북이"라고 불리는 과정에서 거북이가 이미 빈 카드를 향해 돌았 으면, 거북이에게 빈 패치를 앞으로 옮기라고 알려주는데 어려움을 겪고 있습니다.거북을 NetLogo의 앞쪽 빈 패치로 옮깁니다.
let ahead patch-ahead 1
let vacant-ahead ahead with [not any? turtles-here ] ;;this line needs fixing
if any? turtles
[turn-turtle if vacant-ahead [fd 1]]
이 오류는 생성되지만 해결 방법은 없습니다.
WITH expected input to be an agentset but got the patch (patch 1 -2) instead.
error while solute 2 running WITH
called by procedure MOVE-TURTLE
called by procedure GO
called by Button 'go'
그냥보다 읽기 쉬운 방식으로 일부 의견에 회신 : 난 그냥 내 코드의 작은 조금 밖으로 찍은 것처럼 나는 그것을 아주 잘 설명 생각하지 않는다 죄송합니다. 어쩌면 이것이 더 합리적 일 수 있습니다.
to go
ask turtles
[move-turtle]
end
to move-turtle
turn-turtle
if (not any? turtles-on patch-ahead 1)
[fd 1]
end
그래서 나는 단지 그들이 "싹"경우와 같은 바람직하게는, 전체 패치를 차지, 앞서 빈 패치 1 "턴 거북이"로 설정되어있는 거북이를 이동하려면이 코드를합니다. 감사!
패치가 비어 있지 않으면 어떻게 될까요? –
기본적으로 오류는 단일 패치에서 "함께"사용할 수 없다고 말합니다. 코드에서 "ahead"변수를 하나의 패치 (patch-ahead 1)로 정의하고 "with"를 사용하여 "vacant-ahead"변수를 정의하려고합니다. 이는 집합이 아닌 무언가의 하위 집합을 만들 수 없기 때문에 불가능합니다. 코드의 목적이 무엇인지는 분명하지 않습니다. 정확히 거북이가해야 할 일은 무엇입니까? – drstein
기본적으로 단어에서 나는 단지 빈 자리로 앞으로 1 이동하도록되어있는 거북이 싶습니다. 비어 있지 않으면 아무것도하지 않습니다. 예를 들어 'and'를 대신 사용해 보았습니다. '앞에 (앞쪽에) 그리고 (거북이 - 여기에)'을 비워 둡니다. 그러나 그것은 도움이되지 않습니다. –