生命游戏 - 算法问题C ++

时间:2011-11-19 04:02:44

标签: c++ algorithm

好吧,所以我正在编写生命游戏,我差不多完成了,但我遇到了用于使细胞活着和死亡的算法的麻烦,它可以在函数计算中找到。

以下是我得到的输入:http://ideone.com/ywEtC

这是一个来自我使用的相同模式的网站的屏幕(在评论中找到),它显示了预期的输出。

我已经尝试过这样做,以便它不会将新创建的单元格视为邻居,但结果更糟。可以在此处找到参考资料的来源:https://github.com/Legitimate/Conway-s-Game-of-Life/blob/master/gameoflife4.cpp

1 个答案:

答案 0 :(得分:6)

问题是你需要加倍缓冲,因为在你改变一个值后,其他值就不会知道它的原始值。
e.g。

---
+++
---

(0,1):它有1个邻居并且必须死掉:

---
-++
---

(1,1):它有1个邻居并且必须死掉:

---
--+
---

(2,1):它有0个邻居并且必须死掉:

---
---
---

,而预期的输出将是:

-+-
-+-
-+-

此外,使用char数组非常低效,你需要扭曲bit_vector使其成为二维,它也会使双缓冲更容易。