にコードを単純化して、それを簡単にするように単純化しますが、プレイヤーのゲームピースを追跡するグリッド上でゲームを作っています。配列が変更されたら配列ヒストリ配列
9x9グリッドの場合、配列には9個のインデックスがあり、それぞれに9個のインデックスが含まれているので、グリッド上の点を配列[x] [y]として参照できます。毎回、この配置をグリッド履歴配列に保存したいと思います。
Iveは毎回array.pushを使用しようとしましたが、1ターン後に履歴を表示すると、すべてのグリッドが現在のものと同じになります。私は証明するために、単純なjsfiddleを作った - ここでは、以下のhttps://jsfiddle.net/3rmwnuv5/
コードあまりに:
var stones = [['clear', 'clear', 'clear'], ['clear', 'clear', 'clear'], ['clear', 'clear', 'clear']]
var stoneHistory = [];
stoneHistory.push(stones);
stones[1][1] = 'black';
stoneHistory.push(stones);
stones[0][2] = 'white';
stoneHistory.push(stones);
console.log(stoneHistory);