フィールドの初期化 (KATAMINOを解くプログラムを作成する)
★前回の記事
KATAMINOのピースを置くフィールドを初期化します。
フィールドのサイズは、5 × (置くピースの数)
です。
詳しくは以下の記事を参照してください。
実装
フィールドの各値を-1
で初期化します。配列を引数で与えられた値で埋めるArray.fill
(
Array.prototype.fill() - JavaScript | MDN
)
という関数を使用しています。
js/solver.js
const solver = { init : (targetPiece) => { const kataminoField = [] for(let i=0; i < 5; i++) { kataminoField.push((new Array(targetPiece.length)).fill(-1)) } console.log("kataminoField", kataminoField) }, // 中略 }
動作確認
以下のようになっていれば成功です。今回は引数で渡されたピースが3つなので、5×3の配列が作成されています。
リファクタリング
長さ5の配列を定義し、map
を使用することで以下のように書き換えることもできます。
const solver = { init : (targetPiece) => { const kataminoField = new Array(5).fill().map(() => ( new Array(targetPiece.length).fill(-1) )) console.log("kataminoField", kataminoField) }, }
new Array(5)
とmap
の間にfill
を挟む理由は以下の記事を参照してください。
以上でフィールドの初期化を行うことができました。
★次回の記事
★目次