KATAMINOを解くプログラムを作成する【目次】
KATAMINOとは
KATAMINOとは、Gigamic社が発売するパズルゲームです。 ペンタミノという、5個の正方形をつなげてできる形をしたピースを使い、 長方形の枠にぴったり収まるように組み合わせて遊ぶゲームです。
作るもの
KATAMINOを解くプログラムを作成します。言語はJavaScriptです。
完成したものがこちらです。↓
カタミノのピースをドラッグアンドドロップで選択してスタートボタンを押します。
解く過程も表示されます。
完成したら、「できたよ」と表示されます。
KATAMINOを解くプログラム 目次
STEP 1: KATAMINOを解くプログラムを作成する
- KATAMINOを解くアルゴリズム
- データ構造を考える
- ペンタミノの回転、反転をするためのアルゴリズム
- もととなるペンタミノのピースの準備
- 最終的に出来上がる配列の確認と関数の準備
- JavaScriptで転置を実装する
- JavaScriptで2次元配列のコピーと配列の反転
- 8パターンのスピンを作成する
- 2次元配列の重複を取り除く
- 2次元配列からピースがある場所のリストを作成する
- KATMINOを解くメインのプログラムの準備
- フィールドの初期化
- スタックへの初期データの投入
- スタックからの情報の取り出し
- ピースを置く場所の算出
- フィールドにピースが置けるかどうかの判定
- フィールドの更新
- JavaScriptで値を指定して削除する(置かれていないピースの更新)
- 最小の空白マスの更新
- 次に置くピースの投入
- 表示用メソッドの作成
- セルに色をつける
- JavaScriptのsetTimeoutを使用して途中経過を表示する
- ピースを画面から選べるようにする
- フィールドが分割された時に探索をやめる
STEP 2: UIを整える
- STEP2での成果物
- bootstrapとjQueryの設定
- ロゴの作成とbootstrapのnavbarの設定
- KATAMINOピースの用意
- ピースの選択エリアの作成
- ピースをドラッグ&ドロップさせる(jQuery-UI使用)
- スタートボタンの用意
- KATAMINOフィールドの用意
- 一時停止・再開ボタン、速度調節用スライダーの用意
- プログラムの構造を考える
- 画面の状態を考える
- 使うピースの選択を実装する
- KATAMINOを解くのをスタートさせる
- KATAMINOを解いているときの表示
- KATAMINOを解くのが終了したときの遷移
- 解いた結果をダイアログで表示する
- ピースの再選択を実装する
- 一時停止、再開機能を実装する
- 速度調整機能を実装する
- ピースが置かれないフィールドをマスクする
- フィールドに置かれたピースを選択エリアから消す
- ピースを戻す表示を追加する
ソースコード
githubでソースコード公開しています : https://github.com/yucatio/KATAMINO-SOLVER
依存ライブラリ
動作環境
- Mac OS Sierra 10.12.6
- Google Chrome 72.0