生命游戏

信息收集

原理/规则

案例

分析

设计步骤

生成规则:

黑色:活
白色:死

  • 本身活:临近的 8 个棋子有 0,1,4-8 个活,则下一轮死
  • 本身活:临近的 8 个棋子有 2 或 3 个活,则下一轮活
  • 本身死:临近的 8 个棋子有 3 个活,则一轮活(新生)

Ver1

  1. 定义范围,生成一个 50*50 的网格,边框黑色,填充白色
  2. 鼠标点击方格,相应的方格变成黑色
  3. 两个按钮:
  • 清空:点击后,重新绘制网格
  • 生成:点击后,判断每个方格中心点像素的颜色,按生成规则执行计算,并在一份新文档中记录计算结果,全部计算完成后,用新文档的数据取代旧数据
  1. 计数器:记录“生成”按钮的点击次数

cp4 点评:

  • 一看就是新手,太执着于细节,都是结果,太含糊了,不够具体!
  • 最核心的是数据结构和算法!如何记录、维护数据

Ver2

  1. 范围
    定义游戏范围,绘制横、纵框线
    刷新频率
  2. 预设
    定义二维数组,赋初始值设为 0
    定义填色函数,值为0,则填充白色,值为1,则填充黑色
  3. 初始值
    定义刷新频率
    用填色函数填色
  4. 遍历
    i++ j++
    计算该点周围 8 个位置的值之和:count
    if 该点值为 0 且 count = 3,则赋值为1
    else 该点值为 1 且 count = 0/1/4/5/6/7/8,则赋值为0
    其他值不变
    跳出循环后,用填色函数填色