Netlogo笔记02:生命游戏B3S23的实现

patches-own [living]
to setup
  __clear-all-and-reset-ticks
  ask patches[;if rannum < 0.2,a cell born,else nothing happend
    ifelse random-float 1 < 0.2[
      set pcolor black
    ]
    [
      set pcolor white
    ]
  ]
end

;B3S23 is the game_charactor
to go
  ;avoid rules breaking,step 1 to calc living neighbors
  ask patches[;set the attr-val is its neighbors with diff color limit
    set living count neighbors with [pcolor = black]
  ]
  ;step 2 to update every patches with the attr living
  ask patches[
    ifelse(pcolor = black)[
      if living > 3 or living < 2[
        set pcolor white
      ]
    ]
    [
      if (living = 3)[
        set pcolor black
      ]
    ]
  ]
end
        
  1. patches-own [living]:为patches格子新增属性
  2. ifelse[...][...]:互斥事件判断语句
  3. set pcolor white:pcolor是patches的固有属性,set ... xxx是赋值语句
  4. count neighbors with [pcolor = black]:count...with是计数,neighbors是所有邻居patches,with中是筛选条件
  5. B3S23:表示当有三个活着的邻居时,此patches变为活patches;当有2~3个活邻居时,当前patches继续存活。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尼卡尼卡尼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值