netlogo 3D与2D中的random-float类似的关键字吗?

时间:2018-11-14 14:54:40

标签: netlogo

我目前正在努力改编3D中的“生命游戏”代码,以便在我的高中CS班上打入决赛,并且我正在寻找与“ random-float”类似的关键字, netlogo中的效果。作为参考,这是netlogo手册中“ random-float”关键字的链接:http://ccl.northwestern.edu/netlogo/docs/dict/random-float.html

如果有人可以帮助我,将不胜感激。

1 个答案:

答案 0 :(得分:2)

我认为您可以将其或多或少直接转换为3D,而无需使用其他图元-random-floatrandom仍然可以解决问题。本质上,在2D版本中,密度是通过使每个单元格随机绘制一个介于0和100之间的数字并将其与initial-density滑块中的值进行比较来确定的。如果绘制的数字小于initial-density,则该单元格为“出生”。因此,通过这种简化的设置,您基本上可以在3D中做同样的事情:

to setup
  ca
  ask patches [ 
    ; if a random number between 0 and 100 is less than
    ; 5, become a "live" cell. Otherwise, become a dead cell.
    ifelse random-float 100 < 5 
    [ cell-birth ]
    [ cell-death ]   
  ]
  reset-ticks
end

to cell-birth
  set pcolor green
end

to cell-death
  set pcolor black
end

给出类似的内容

enter image description here

因此,要使密度变化,您可以修改5(或像原始2D生活中那样添加滑块。如果我改为50:

to setup
  ca
  ask patches [ 
    ifelse random-float 100 < 50 
    [ cell-birth ]
    [ cell-death ]   
  ]
  reset-ticks
end

我得到了一个更加密集的3D世界:

enter image description here

希望对您有帮助!