说起这个《生命体游戏》,也就是大家说的“康威生命游戏”,我可真是费了一大把力气才把它捣鼓出来。

起心动念:被嘲笑了不服气

我这人就是受不了别人激。有一次跟老张他们吃饭,我吹牛说自己现在写程序,闭着眼睛都能把一套业务流程跑起来。老张就阴阳怪气地说:“老王,你那不就是CRUD吗?天天增删改查,有什么技术含量?有本事你搞个能自己动的出来看看。”

我当时脸上挂不住,但嘴上没反驳。回家后越想越气,心想这回真得搞个“活物”出来给他看看。翻来覆去,就盯上了这个《生命体游戏》。这玩意儿看着简单,就是几个点跑来跑去,但里面涉及的逻辑,可比那些破业务复杂多了。

实践过程:搭格子,设规则,跑起来

我决定用周末两天时间把它敲定。整个实践过程,我从头到尾是这么干的:

    小编温馨提醒:本站只提供游戏介绍,下载游戏请前往89游戏主站,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区

  • 第一步:铺垫子。我先是定了一个巨大的二维数组,也就是我们说的“世界”或者“棋盘”。一开始我没想太多,随便弄了个 50×50 的格子。规定:活着的格子是白色,死的格子是黑色。先全部填黑。
  • 第二步:洒种子。接着就是“播种”,我用随机数撒了一些白点进去,这就是初代生命体。这个随机数得把握洒太多了马上就挤死了,洒太少了又直接灭绝。来回试了五六次,才找到一个能跑起来的密度。
  • 第三步:写规则,差点没被绕进去。这就是这游戏的核心,就四条最简单的规则。我拿着笔在纸上画了半天,才敢动键盘。
    • 邻居少于两个,你就死了,叫“孤独致死”。
    • 邻居多于三个,你就死了,叫“拥挤死了”。
    • 邻居正好是两个或三个,恭喜你,活到下一代。
    • 周围空地如果有正好三个邻居,空地就能“生”出一个新生命。
  • 第四步:打补丁,找出隐藏的坑。我第一次跑的时候,画面简直是群魔乱舞,一闪一闪的,跟看鬼片似的。后来才发现大问题:我不能在一个循环里,一边检查当前格子的状态,一边马上更新它的状态。这样会导致我后面的格子,用了前面格子已经更新过的“错误”状态。我赶紧改了思路,必须先用一个临时的“下一代”数组,把所有格子下一秒的状态都算等全部算完,再用这个“下一代”整体覆盖掉当前的“世界”。这一下,画面就稳住了,各种滑翔机、脉冲星都跑出来了,看着真是舒服。

背后故事:为啥突然这么闲?

老张他们以为我每天都在忙,不知道,我能有这闲工夫捣鼓这个“生命体游戏”,是因为我刚把工作给辞了。不是我主动辞的,是那家公司实在太坑,项目做到一半,老板跑路了!对,你没听错,直接人间蒸发,工资都拖了两个月,我一气之下,把电脑一砸,拎包走人了。

那段时间,我窝在家里,靠着那点可怜的积蓄撑着。房租催得紧,天天给我打电话。我本来想找个能远程干的活,结果每天面试不是让我做笔试就是让我等通知。实在无聊透顶,人都要发霉了,那股子想证明自己还行的劲儿就顶上来了。

所以说,这个《生命体游戏》不光光是我给老张的回击,它也是那段焦虑日子里,我自己给自己找的一点精神寄托。看着那些小方块在我的规则下生生死死,有种莫名的满足感。我已经把这个小玩意儿放到了一个简单的网页上,随时都能跑起来看。下次老张再敢嘲笑我,我就直接让他看看这个不断进化的“小世界”。

免责声明:喜欢请购买正版授权并合法使用,此软件只适用于测试试用版本。来源于转载自各大媒体和网络。 此仅供爱好者测试及研究之用,版权归发行公司所有。任何组织或个人不得传播或用于任何商业用途,否则一切后果由该组织及个人承担!我方将不承担任何法律及连带责任。 对使用本测试版本后产生的任何不良影响,我方不承担任何法律及连带责任。 请自觉于下载后24小时内删除。如果喜欢本游戏,请购买正版授权并合法使用。 本站内容侵犯了原著者的合法权益,可联系我们进行处理。