蜘蛛攻击:创建一个简单的行为模型

时间:2017-03-25 07:21:40

标签: netlogo

更新

感谢Luke C& JenB。这是我修改后的代码。如果男性徘徊在她的领地,我只是将她的领土变成了不同的颜色(绿色到蓝色),将女性转变为“杀手”。如果任何男性碰巧出现在蓝色斑块上,他就会死亡。似乎最初触发转换的男性不会立即被吃掉,这就是我想要的。如果他在下一个嘀嗒声中没有离开她的蓝色区域,他就可以被吃掉。然后,任何后续的雄性都会立即被吃掉。

此外,我正在使用BehaviorSpace工具探索一些很酷的东西,比如在多次运行中吃掉所有雄性所需的滴答数。

唯一松散的目的是创建一个图形窗口,显示随时间变化的男性数量(滴答声)和一个包含非杀手/杀手女性数量的报告窗口。

原始帖子

我想用以下规则模拟狼蛛的行为系统:

  • 女性是静止的

  • 男性移动

  • 如果任何一名男性在女性的某个半径范围内侵犯,该女性将成为“杀手”两个蜱虫

  • “杀人”女性境内的任何男性都被吃掉并从人口中被带走

  • 当所有男性都被吃掉时,模拟结束

  • 所有女性在安装时都是“非杀手”

该模型的最终目标:

  • 要吃掉所有男性需要多少滴答?

  • 在模拟结束时,人口中是否有“非杀手”女性?

这是我到目前为止所拥有的。我正在努力争取的部分是建立女性地区,当男性进入她的领地时,将非杀手女性转变为杀手女性,占据/取出被吃掉的男性,用蜱来报告模拟的持续时间以及是否有任何非杀手女性仍然在最后。

breed [females female]
breed [males male]

to setup
  clear-all
  reset-ticks
  ask patches [set pcolor white]
  setup-females
  setup-males
end

to setup-females
  create-females 15 [
    set shape "spider"
    set color 15
    set size 25
    setxy random-xcor random-ycor]
    ask females [move-to one-of patches with [not any? females in-radius 40]
    ; prevents overlapping
    ask patches in-radius 20 [set pcolor green]
    ]
end

to setup-males
  create-males 30 [
    set shape "spider"
    set color black
    set size 20
    setxy random-xcor random-ycor]
    ask males [move-to one-of patches with [not any? males in-radius 10]
    ; prevents overlapping
    ]
end

to go
  move-males
  tick
  if count males = 0 [stop]
end

to move-males
  ask males [
    right random 360
    if random 100 > 49 [forward 1 + random (15 - 1)]
    if pcolor = blue [die]
    ;moves male 1 to 15 units per tick if condition satisfied
    score-females
  ]
end

to score-females
  ask females in-radius 20 [
  if count males > 0 [ask patches in-radius 20 [set pcolor blue]]
  ]
end

0 个答案:

没有答案