我目前正在努力改编3D中的“生命游戏”代码,以便在我的高中CS班上打入决赛,并且我正在寻找与“ random-float”类似的关键字, netlogo中的效果。作为参考,这是netlogo手册中“ random-float”关键字的链接:http://ccl.northwestern.edu/netlogo/docs/dict/random-float.html
如果有人可以帮助我,将不胜感激。
答案 0 :(得分:2)
我认为您可以将其或多或少直接转换为3D,而无需使用其他图元-random-float
或random
仍然可以解决问题。本质上,在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
给出类似的内容
因此,要使密度变化,您可以修改5
(或像原始2D生活中那样添加滑块。如果我改为50:
to setup
ca
ask patches [
ifelse random-float 100 < 50
[ cell-birth ]
[ cell-death ]
]
reset-ticks
end
我得到了一个更加密集的3D世界:
希望对您有帮助!