对于低内存使用,Conway的生命游戏的有效实施是什么?
我正在寻找一种快速且节省内存的方法来实现Conway的生命游戏。
限制因素:96x128板,大约2kB RAM和52MHz处理器(请参阅技术规范:http://www.getinpulse.com/features)。
我目前的天真解决方案将每个单元表示为矩阵中的单个位(96 * 128/8 = 1,536字节),但速度太慢。可以使用哪些技巧来提高性能?
存储活细胞的坐标(例如在此实现中http://dotat.at/prog/life/life.html)会占用太多内存。
没有找到相关结果
已邀请:
6 个回复
痰降锭骂奸
骂狮淋唐便
计算下一代时,使用第2,3和4行(空白)计算第3行的新版本。您可以在第4行的顶部编写第3行的新版本。同样,从第1,2,3行计算新行2并将其写在第3行的顶部,因为在计算第2行后不再需要该数据。新行1从行0,1,2计算并写在第2行。 这意味着您只需要一个额外行的内存。 97 * 128位是1552字节。 缺点是你的宇宙滚动内存,你必须有一些机制来处理这个问题。在每次计算之后将其复制回原始位置(这很慢)或者安排能够从内存中的任何位置显示它,并确保您的计算和显示系统可以从高地址到低地址回绕。
蔬谢窗港
死簇
遣莫捅炭
糖固傻染