我想先更改一个物品的价值,然后再将其添加到海龟的邻居列表中。 我正在设置舱口中项目属性的原始值。然后,将其添加到我正在考虑的乌龟列表中。我现在想做的是更新原始值并添加少量值(可能是随机浮点数0.1),以便邻居列表具有属性+随机浮点数0.1。 与我要更改的内容相关的代码部分是:
to action
if breed = breed1 [
hatch-item 1 [
hide-turtle
set attribute random-float 1
set this-item self
ask myself [
set my-list fput this-item my-list
]
]
ask link-neighbors with [breed = breed1] [
set attribute (attribute + random-float 0.1)
set my-list fput this-item my-list
]
...
]
特别是这些代码行:
ask link-neighbors with [breed = breed1] [
set attribute (attribute + random-float 0.1)
set my-list fput this-item my-list
]
我在这里想要做的是更改此项目的值,更新其原始值,然后再将其添加到乌龟的邻居列表中。 我试图考虑:
set attribute (attribute + random-float 0.1)
为了更新属性,但是在列表中此项目属性的值再次被初始化,所以我有0 +随机浮点数0.01。
能否请您告诉我如何从原始属性值更新(不创建新值; 例如,如果我具有属性的原始值= 0.5且随机浮点数1等于0.2,我应该有一个新值等于0.7 ),然后将其作为此项目添加到邻居列表中?
已更新:
这是当前输出的示例:
(turtle 2) (item 16) with attribute 0.147
neigh: 0 (item 16) with attribute 0 with random-float 0.2
但是我想拥有的是:
(turtle 2) (item 16) with attribute 0.147
neigh: 0 (item 16) with attribute 0.347 with random-float 0.2
希望你能帮助我。
谢谢
答案 0 :(得分:2)
如何测试值,您拥有的代码将更改名为attribute的变量的值。因此,如果您认为它没有被更改,也许您是在向错误的乌龟询问属性值?您可以通过在之前和之后执行打印语句来看到这一点:
to action
if breed = breed1 [
hatch-item 1 [
hide-turtle
type "Old vlue: " print attribute
set attribute random-float 1
type "New value: " print attribute
set this-item self
ask myself [ set my-list fput this-item my-list ]
]
ask link-neighbors with [breed = breed1] [
set my-list fput this-item my-list
]
...
]