配列からはみだしていないかの確認方法がわからないです
下記のコードで上下左右のループをパスする部分のコードのイメージができません
とくに左右の部分での、cellIndex % SIDE_CELLS == SIDE_CELLS-1 の剰余の使い方など
がイメージできないです、SIDE_CELL-1というのはいったいどういうことですか、教えてくださいm(__)m
function update(cellInfos, tempCellInfos){
//sliceで先頭からおしりまで切り出してコピーすると結果的に全部コピーになる
tempCellInfos = cellInfos.slice();
for (var index = 0; index < tempCellInfos.length; index++){
//今から各細胞の自分のまわりの生死をチェックするので、カウンターを用意
var liveCellCount = 0;
//このコードでは前の行、隣の行、前の列、隣の列を二つのループで表現します
for(var rowPointer = -1; rowPointer < 2; rowPointer++){
for(var colPointer = -1; colPointer < 2; colPointer++){
//もし自分ならばカウントしないので飛ばします。
if(rowPointer == 0 && colPointer == 0){
//コンティニューでこの回の繰り返しをパスすることができます
continue;
}
//チェックするセルの番号を算出します
var cellIndex = index + rowPointer * SIDE_CELLS + colPointer;
if(cellIndex < 0 || cellIndex >= tempCellInfos.length){
//上下の領域からはみ出していたらループをパス
continue;
}
if(index < cellIndex && cellIndex % SIDE_CELLS == 0 || index > cellIndex && cellIndex % SIDE_CELLS == SIDE_CELLS-1){
//左右が自分の隣の列でなくればループをパス
continue;
}