やってみたJavaScript(0006): Life Game とりあえず動いてる?
やってみたJavaScript、今回は、バグ修正って感じ。
なかなかうまく動かなかったけど、とりあえずちゃんとしてるような気がしてきた。
test0006
https://www.hircos.work/test/test0006/
セルのビフォーアフター
セルの生死をジャッジするにあたり、ビフォーアフターを記録しておくのが必要な気がしてきた。
ある場面での各セルの状態をスナップショットしておいて、それに対して次の状態では各セルが死ぬのか生きるのかをジャッジする。なので、ジャッジしながら生死をいじっちゃうとうまくいかない。
ということで、セルは構造体の配列にしよ。コンストラクタなるものを使お。
function initCells(){
for( i = 0 ; i < cells.length ; i++ ){
for( j = 0 ; j < cells[i].length ; j++ ){
cells[i][j] = new initCell(false, false);
}
}
}
function initCell(_before, _after){
this.before = _before;
this.after = _after;
}
セルそれぞれに対して、ジャッジ前後の状態を持たせる。これである場面でのスナップショットに対してジャッジをかけられる。
なんかできてる気がする
とりあえずこの改修で、なんとなくできてるような気になってきた。
が、いろいろやりたくなってきたので、まだまだ続けられそう。
- start/stopボタン
- クリックだけじゃなくてドラッグで描画
- セル数表示
- サイズ、セル数の設定変更
- etc.
いじょ。