如何绘制补丁下变量的分布。让我解释一下情况,我有5只海龟,每一片我都计算出了最接近的海龟和最远的海龟之间的差异。我想画出这个区别。每个补丁都会有一些海龟最接近,所以我还计算了另一种测量方法,如下:
ask patches [ set closest-party min-one-of turtles[distance myself]
set closest-party-dist [distance myself] of closest-party
set farthest-party max-one-of turtles[dista
我已经根据一个名为point的属性的值对所有的海龟进行了排序。现在我想要一个点对海龟号的图。我该怎么做?
turtles-own [ point ]
to setup
ca
crt 100
reset-ticks
end
to go
repeat 100[
ask turtles[
if random 10 = 1[
set point point + 1
]
]
];;sorting
let array sort-on [point] turtles
tick
end
我要创造很多海龟组成一个紧凑的小组,任何形状,一个简单的10x100矩形就足够了。重要的是他们必须彼此靠近。在c中,我会做这样的事情:
for(x = 1; x <= rows; x++)
{
for(y = 1; y <= columns; y++)
{
create_turtle(x,y);
}
}
在网络标识中,相应的内容将是:
crt 1000
let n 0
let x 1
let y 1
while[y <= 10]
[
set x 1
while[x <= 100]
[
ask turtle n
我是Netlogo的新手,我正试着为我的模型画一张图。我想绘制关于海龟(计数链接)/(计数海龟)的链接的平均值。
但是,当我单击模型的setup时,会出现以下消息
除以零。观察者运行时出错/被绘图调用'Promedio conexiones para cada agente‘pen’Prom.Conex‘由__CLEAR-ALL-AND-RESET-TICKS调用的更新代码由按钮' SETUP‘调用的过程setup调用
似乎在设置过程中,即使设置最初创建了5个海龟,它也是0个海龟。但是在安装完成之前,它显然会尝试绘制一些东西。你知道为什么会发生这种情况吗?我将我的代码放在更新字
我需要保存所有的海龟和链接,这样如果我对图形拓扑做了一些修改,我就能够在以后恢复它。目前,我使用的方法是通过外部文件加载/保存:
to save-graph
nw:save-graphml "mygraph.graphml"
end
to load-graph
ask turtles [ die ]
nw:load-graphml "mygraph.graphml"
end
但它的速度非常慢,特别是对于大图。我尝试简单地将海龟和链接分配给其他变量:
globals [saved-turtles saved-links]
to save-graph
我已经使用这个过程创建了海龟
file-open "C:/Users/.../netlogo.csv"
while [ not file-at-end? ] [
let data csv:from-row file-read-line
create-turtles 1 [
set size 0.1
setxy random-pxcor random-pycor
set codcatasto item 0 data
set set yExp item 1 data
]
]
现在,我想让海龟从另一个csv.
在我的模型中,海龟的数量是基于用户使用滑块定义的值动态的。滑块可以取2到10之间的值。每个海龟都有自己的一组坐标和特征,因此我使用下面的代码来创建它们。
create-parties 1
[set color red set label-color red set label who + 1 set size 3 setxy party1-left-right party1-lib-con ]
create-parties 1
[set color green set label-color red set label who + 1 set size 3 setxy party2-lef
我想知道,在某只海龟的航向中,是否有另一个代理人出现在一定距离内。
这里的距离是D。
注:
在D之前在给定的方向上存在的任何代理也应该被考虑。
即使是方向不符合对方的代理中心,但只是触及它,即使那样的代理人应该考虑。
问题:
没有提前操作的程序。由于补丁大小>海龟大小,不适用于前补丁和海龟的组合.
可能的方法:1.用直线方程再现海龟的航向。
to-report calculate-line[x y angle]
let m tan angle
let A m
let B -1
let C (- m * x + y)
report (list A B C)
e
当我运行这段代码时:
to myself1
create-turtles 1
let a "a"
ask turtle 0 [
show a
show self
ask patch-here [
show a
show self
show myself
]
]
end
我得到了这个输出:
(turtle 0): "a"
(turtle 0): (turtle 0)
(patch 0 0): "a"
(patch
我使用下面的代码创建了50只海龟,并将它们随机分配给四种不同策略中的一种(即a、b、c和d):
问题是,当我减少创造海龟的数量或增加策略的数量时,我面临的情况是,至少有一种策略没有被任何海龟采用。
turtles-own [ my_strategy ]
to setup
;; create 50 turtles and assign them randomly
;; to one of four different strategies
create-turtles 50 [
set my_strategy one-of [ "a" "b"
如下面的测试所示,如果一只海龟在死亡时正在运行while,那么它就会脱离while (没有任何错误)。这种行为是否得到NetLogo的保证? to test
ca
let age 0
crt 1
ask turtle 0 [
while [true] [
set age (1 + age)
print (word "age is " age)
if (random-float 1 < 0.1) [die] ;death ends the while
]
]
end
我试图做一个游戏,你必须收集海龟,所以当你点击一只海龟,它移动到一个盒子。问题是,当你点击其中一只海龟时,你并没有点击海龟的移动。我认为这是因为我创建了一个变量来控制多只海龟,但我不知道如何解决这个问题。下面是我的代码:(顺便说一句,我在使用堆栈溢出的“code”按钮添加代码时遇到了问题)
import turtle
import random
s = turtle. Screen()
s.bgcolor("lightgreen")
print("Welcome! this pond is infested with turtles! Can you catch