Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Netlogo:[代码]要求您后面的补丁更改颜色_Netlogo_Agent Based Modeling - Fatal编程技术网

Netlogo:[代码]要求您后面的补丁更改颜色

Netlogo:[代码]要求您后面的补丁更改颜色,netlogo,agent-based-modeling,Netlogo,Agent Based Modeling,我正在尝试创建一个游戏,我想做的是让乌龟后面的补丁在乌龟吃水果时改变颜色。所以海龟会移动并吃水果。吃了一个水果后,它后面的补丁会改变颜色,但这种颜色会随着海龟的移动而移动,从而产生海龟长度/大小增加的效果 现在,我尝试使用代码: ask turtles [ if score = 10 [ ask patch-ahead -1 [ set pcolor yellow ] ] ] 问题是,当海龟继续移动时,整个路径会变成黄色,而不是当前位置后面的补丁。有没有代码可以解决这个

我正在尝试创建一个游戏,我想做的是让乌龟后面的补丁在乌龟吃水果时改变颜色。所以海龟会移动并吃水果。吃了一个水果后,它后面的补丁会改变颜色,但这种颜色会随着海龟的移动而移动,从而产生海龟长度/大小增加的效果

现在,我尝试使用代码:

ask turtles
[ if score = 10
  [ ask patch-ahead -1
    [ set pcolor yellow
    ]
  ]
]

问题是,当海龟继续移动时,整个路径会变成黄色,而不是当前位置后面的补丁。有没有代码可以解决这个问题?另外,当它吃另一种水果时,我想要它后面的两块黄色补丁。那么我该如何编写代码呢?

那么你想玩一个像蛇一样的游戏吗?你可以给补丁一个
内存
变量,这样他们就可以跟踪海龟经过补丁的时间。如果这个记忆值被蛇身的当前“大小”修改(基于它吃了多少水果),你可以让这些补丁保持更长的颜色。下面是一个简单的版本(没有控件,蛇只是随意移动):

patches-own[mem]
繁殖[蛇]
品种[水果]
蛇有自己的[尾巴]
设置
ca
创造蛇1[
将颜色设置为白色
定尾透镜1
面对一个邻居
在这里问帕奇[
设置我自己的颜色
]
]
创造水果30[
移动到其中一个补丁
定形“花”
]
重置滴答声
结束
外带
问蛇[
如果随机浮动1<0.05[
rt[90-90]中的一个
]
如果前面补丁的[P颜色]为1=白色[
邮票
死亡
]
移动到前补1
提前询问补丁-1[
设置我自己的颜色
设置我自己的mem[tail len]值+1
]
如果有的话?这里有水果吗[
在这里问水果[死]
设置尾部透镜尾部透镜+1
]
]
如果没有?蛇[
打印“蛇试图吃掉自己。”
停止
]
使用[mem>0]询问修补程序[
设置mem mem-1
如果mem=0[
设置彩色黑色
]
]
打上钩
结束

那么,你是在追求像蛇一样的游戏吗?你可以给补丁一个
内存
变量,这样他们就可以跟踪海龟经过补丁的时间。如果这个记忆值被蛇身的当前“大小”修改(基于它吃了多少水果),你可以让这些补丁保持更长的颜色。下面是一个简单的版本(没有控件,蛇只是随意移动):

patches-own[mem]
繁殖[蛇]
品种[水果]
蛇有自己的[尾巴]
设置
ca
创造蛇1[
将颜色设置为白色
定尾透镜1
面对一个邻居
在这里问帕奇[
设置我自己的颜色
]
]
创造水果30[
移动到其中一个补丁
定形“花”
]
重置滴答声
结束
外带
问蛇[
如果随机浮动1<0.05[
rt[90-90]中的一个
]
如果前面补丁的[P颜色]为1=白色[
邮票
死亡
]
移动到前补1
提前询问补丁-1[
设置我自己的颜色
设置我自己的mem[tail len]值+1
]
如果有的话?这里有水果吗[
在这里问水果[死]
设置尾部透镜尾部透镜+1
]
]
如果没有?蛇[
打印“蛇试图吃掉自己。”
停止
]
使用[mem>0]询问修补程序[
设置mem mem-1
如果mem=0[
设置彩色黑色
]
]
打上钩
结束

请提供最小的可复制代码片段供其他人查看,以便提供帮助。那么您想让轨迹随海龟移动吗?也就是说,当海龟离开时,补丁会变回原来的颜色,而不是显示海龟的位置?是的!这就是我想要的。因此,如果乌龟吃了一个水果,它会有一条长度为1的小径,这条小径会随着它一起移动,这条小径将是它后面的黄色斑点。你能帮忙吗?非常感谢。请提供最小的可复制代码片段供其他人查看,以便有人能够提供帮助。因此,您希望轨迹随海龟移动吗?也就是说,当海龟离开时,补丁会变回原来的颜色,而不是显示海龟的位置?是的!这就是我想要的。因此,如果乌龟吃了一个水果,它会有一条长度为1的小径,这条小径会随着它一起移动,这条小径将是它后面的黄色斑点。你能帮忙吗?非常感谢。非常感谢你!!我想办法解决这个问题:)。你能帮我做这个吗?如果你能的话,我会非常感激的!非常感谢你!!我想办法解决这个问题:)。你能帮我做这个吗?如果你能的话,我会非常感激的!
patches-own [ mem ]
breed [ snakes snake ]
breed [ fruits fruit ]

snakes-own [ tail-len ]

to setup
  ca
  create-snakes 1 [
    set color white
    set tail-len 1
    face one-of neighbors4
    ask patch-here [
      set pcolor [pcolor] of myself
    ]
  ]
  create-fruits 30 [
    move-to one-of patches
    set shape "flower"
  ]
  reset-ticks
end

to go
  ask snakes [
    if random-float 1 < 0.05 [
      rt one-of [ 90 -90 ]
    ]
    if [ pcolor ] of patch-ahead 1 = white [
      stamp
      die
    ]
    move-to patch-ahead 1
    ask patch-ahead -1 [
      set pcolor [color] of myself
      set mem [tail-len] of myself + 1
    ]
    if any? fruits-here [
      ask fruits-here [ die ]
      set tail-len tail-len + 1
    ]
  ]
  if not any? snakes [
    print "The snake tried to eat itself."
    stop
  ]
  ask patches with [ mem > 0 ] [
    set mem mem - 1
    if mem = 0 [
      set pcolor black
    ]
  ]
  tick
end