Conway‘s Game of Life - Unlimited Edition(康威生命游戏-无限版)

本文介绍了康威生命游戏的无限版问题,描述了解题过程中的挑战和关键点。作者在 Codewars 遇到该问题,通过分析规则,发现原思路忽略了无限版特性,即细胞可在外围无限扩展。文章强调了考虑周围死细胞的重要性,并解释了如何优化代码以处理无限区域。最后,作者邀请读者一起探讨更优解法。
摘要由CSDN通过智能技术生成

最近也不知道在忙啥,反正好久没玩 codewars 了,上去看看的时候偶尔看到了一个很有意思的题目,稍微看了一下说明,感觉可以做出来,于是就开始了长达 2+2 个小时的解题过程。

下面是简单的题目说明:简单的来说,就是有一个二维数组,数组的每一个元素就是一个细胞,细胞有存活和死亡两种状态,每经过一代,细胞的状态都可以发生改变,有如下四个具体规则:

1、任何具有少于两个活邻居的活细胞都会死亡。
2、任何具有三个以上活邻居的活细胞都会死亡。
3、任何有两个或三个活邻居的活细胞都可以存活到下一代。
4、任何具有恰好三个活邻居的死细胞都将变为活细胞。

什么是邻居呢?就是围绕着该细胞的周围一圈,即八个细胞。

好了,在看完这些的时候,我的思路差不多就成型了。首先,我得获取到这个细胞周围细胞的状态,并且判断有几个活细胞,这样就能够根据规则判断各个细胞下一代的存活情况了。当我刷刷刷敲下代码,顺利地通过第一个测试的时候,我得意地提交了我的代码,结果出乎我的意料,在第三个测试之后陆续出现了问题。从此,我开始了长达半个小时的debug,但是仍然一无所获,只好绝望地看看讨论区的各位,结果,我发现了一点玄机!

首先,仔细点的朋友(不像我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值