gpt4 book ai didi

Netlogo代码问题,海龟在0,0处找不到补丁

转载 作者:行者123 更新时间:2023-12-02 12:17:43 26 4
gpt4 key购买 nike

我正在尝试按照与此视频 (1:29 - 1:45) 相同的方式创建模拟

https://www.youtube.com/watch?v=pqBSNAOsMDc

我认为实现无限循环过程的一个简单方法是让海龟面向 0,0,然后在半径 90 内寻找空 block (因此它们总是向右看。

我收到错误代码..

'没有定义从点 (3,-6) 到同一点的航向。 '

有人可以用我的代码为我指出正确的方向吗?

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


turtles-own [ faction ]

to setup
clear-all

ask patches [ set pcolor white ]
set-patch-size 7
resize-world min-pxcor max-pxcor min-pycor max-pycor


ask patch 0 0
[ ask patches in-radius ( max-pxcor * .6) with [ random-float 100 < density ]
[ sprout 1
[
set shape "circle"
assign-factions
set color faction-color
set size 1 ] ] ]

ask turtles-on patch 0 0 [ die ]

reset-ticks
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to-report faction-color
report red + faction * 30
end

to assign-factions
let angle 360 / factions
foreach n-values factions [?] [
ask patch 0 0 [
sprout 1 [
set heading ? * angle
ask turtles in-cone max-pxcor angle [ set faction ? + 1 ]
die ] ] ]
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to go

ask turtles
[ set heading (towards patch-at 0 0) ; adjusts heading to point to centre
let empty-patches neighbors with [not any? turtles-here]
if any? empty-patches in-radius 90
[ let target one-of empty-patches
face target
move-to target ]
]

end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

最佳答案

在您的 go 过程中,您正在使用设置标题(朝向 patch-at 0 0),但是 patch-at为您提供相对于正在询问的乌龟的位置的补丁。因此,如果您要求patch-at 0 0,您总是会得到海龟实际所在的补丁。并且朝向您自己的方向未定义,因此您会收到错误。

patch-at 0 0 替换为 patch 0 0 (适用于绝对坐标)将解决一半的问题:您所问的乌龟仍然有可能已经位于补丁 0 0。在这种情况下,您将得到与以前相同的错误。

解决方案:将设置标题(朝向 patch-at 0 0) 替换为 face patch 0 0face如果您要求面对您已经所在的位置,基元不会崩溃。

关于Netlogo代码问题,海龟在0,0处找不到补丁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14686374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com