javascript - 康威的生命游戏 - 如何伪造一个 "infinite"二维平面

标签 javascript algorithm multidimensional-array

我正在使用二维数组来表示单元格网格。当边缘或 Angular 落的细胞检查到它的邻居将越界时,它会将它们视为永久死亡。

function getCell(row, column) {
  if(row === -1 || row === cellMatrix.length || column === -1 || column === cellMatrix[0].length)
  {
    return 0;
  }
  else return cellMatrixCopy[row][column];
}

我只是想摆脱滑翔机在到达网格边缘时停止并变成 block 的行为。您将如何“去除”阵列的边缘?

您可以查看完整的实现 here .提前致谢。

最佳答案

How to fake an “infinite” 2d plane?

要创建无限维游戏板,请使用稀疏矩阵表示,其中行和列索引是任意精度整数。大致如下:

map<pair<BigInt,BigInt>, Cell> matrix;

Cell& get_cell(BigInt x, BigInt y)
{
    return matrix[make_pair[x,y]];
}

关于javascript - 康威的生命游戏 - 如何伪造一个 "infinite"二维平面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18564055/

相关文章:

php - PHP中的加解密算法

c - 基数排序算法对于不同顺序的数据可能有不同的运行时间?

javascript - 如何使用现代浏览器(具有shadowDOM内部编辑器)清除输入元素?

javascript - AngularJs 指令 - 属性范围变量不绑定(bind)

c# - 数据设计模式的可比合并

c - 将整数分配给 C 中的字符串

PHP:多维数组元素的串联

c++ - C++中如何指向数组的数组?

javascript - Chrome开发者工具: is there a way to show what calls the function?

javascript - PHP stringID 未从 echo 中读取 onclick