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

本文介绍了一个基于元胞自动机的生命游戏模拟程序。通过设置格子的初始状态和应用简单的生存与诞生规则,观察复杂的生命形态演化。程序使用了互斥事件判断语句来更新每个格子的状态,并通过计数邻居状态来决定格子的生死。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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继续存活。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

尼卡尼卡尼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值