おもちゃのくるま、拡張ゲーム設計図。

ゲーム全体のデータ構造

地形を表す地形レイヤーとギミックを表すギミックレイヤーを2次元の文字列で実装する。

地形レイヤーは文字列で、岩=i、木=k、水=m、平野=f(flat),下がった橋=b0,上がった橋b1,東西の下がった橋b2,上がった橋b3で地形を表す。

ギミックレイヤーは、橋の上げ下げスイッチp、お金=o,マップ上に置かれた矢印として↑1,→1,←1,↓1,車のスタート時の向きを表すc↑,c→,c←,c↓,ゴールを表すg0(ゴール閉じ),g1(ゴールOK)が用意される。

↓1などの数字は2回車が上を通るまで消えない矢印等今後の拡張のために用意している

ステージエディット画面の設計

エディットされるステージを表すcanvas=canvasMap
配置する地形アイコンを表すcanvas=canvasGroundIcons
ステージ製作の補助としてステージ上に配置されるcanvas=canvasGimmickIcons
選択したアイコンをマウスに追従しマップ上に配置するまでの表示を担当するimgタグ=imgIcon
imgIconが保持しているマップチップの情報を保持するための,Iconクラスを実装する。
平原以外の地形アイコンがMapに追加された場合、そのマスのギミックレイヤーは空文字になる。
ギミックアイコンは平野部にしか置くことはできない。 エディットしたステージがきちんとクリアできるかを確認するボタンを追加する
ゴールまでの移動が成功した場合、ステージデータをテキスト化したものが表示される。
カンマ区切りで9行*12列のマップを表す文字列データで地形マップが表現され、マップ上に置かれた矢印などはその数がテキスト末尾に追加される。


ステージエディット時のゴール検証処理の設計図

作られたステージがきちんとゴールできるか自動検証する。 車が複数存在するため、処理は多少複雑になる 一つの車クラス.

まずコード実行時に,地形レイヤーとギミックレイヤーのコピーが作成される。 そしてギミックレイヤーから、curクラスが作成される。 車が一マス移動するのを一ターンとする。 一ターンの動作