, И договорились, что это лучше реализовать как статический
лизую игру Джона Конвея о жизни, но у меня странная проблема. Вот короткая версия, если код доставляет мне проблемы:
let lifeMap = [
[true, false, false],
[false, false, false],
[false, false, false]
];
let oldLifeMap = lifeMap.slice();
for (let row = 0; row < lifeMap.length; row++) {
for (let val = 0; val < lifeMap[row].length; val++) {
let bool = lifeMap[row][val];
let newBool = false; // here is where I would determine if cell is alive/dead
lifeMap[row][val] = newBool;
if (row === 0 && val === 0) console.log("at (0,0)", oldLifeMap[0][0]);
}
}
В ответ на этот код JavaScript печатаетat (0,0) false
, Мне нужно, чтобы остатьсяtrue
пока не начнется следующее поколение.
Я думал делатьlet oldLifeMap = lifeMap.slice()
бы это исправить, но это не так, и я не уверен, почему. (Не должно этокопия 2d массив, а не создать вторую ссылку на него?)
Во всяком случае, что здесь происходит, и как мне успешно сделать фактическую копиюlifeMap
Вот?