現在製作中。 推敲の終わったところまで掲載。 説明が長めだが、これは後日ギミックをさらに追加するとき混乱がおきないようにするためである。 3人寄れば文殊の知恵という。 もしおたぴったんがある程度の成功を収め、ステージ製作者が増えれば、まったく新しい発想のギミックが製作者から提案されるのは必然と考えられる。 その時、いい加減な設計や仕様書では問題がおきる。 その為に丁寧に綴る必要がある。 また私が継続できなくなった時、他の人が理解できるようにと考えて非常に丁寧な説明を試みた。 //上記ですがSina事私の例で恐縮ですが、未掲載のギミックがあり、それを全部盛り込むといつまでたっても設計に行き着けないので、掲載をストップしていたりします。 //なので後日ギミックが追加されるのは順当と考えています。 //現状について,Game製作以外にやりたいことも多いですので日数はかかるかもしれません。 //企画書人生で初めてつづるので、内容がくどくなっていますが、舌足らずよりはいいかなとか? //後ギミック数多いので関係性を考慮して慎重につづっています。 *序文 **用語の定義 Stageオブジェクト 盤面を現す Stage.map 文字を置いていく盤面を現す 配列でMasuオブジェクトへの参照を持つ Masu オブジェクト 一つのマスを現し多種類のギミックを持ちType毎に処理が違う。 mozi オブジェクト 盤面においていく文字、最初は選ぶ君に入っていてこれも多種類ある 図で説明する。 &ref(zyobun1.JPG) 例えば上記盤面ではstage.mapは5行11列の配列で それぞれのマスにマスオブジェクトが参照されている。 この盤面で赤丸部分に文字を入れたとすると、"あいこう"や"眼光"など色々な単語が出来て得点が入るが、この処理を"文字列探索・得点処理"と命名する。 &ref(zyobun2.JPG) 文字を置いた時のフロー。 &ref(zyobun3.jpg) まず文字の種類(巨大文字やギミック文字)と マスの種類から、そのマスに文字を置けるかを決定する。 置けたら、適切な順番でギミック毎に処理を行う。 "文字列探索・得点処理"を行うかどうかはギミックの種類次第となる。 ちなみに右に書いてあるのはギミックが効果を表すタイミングである。 最後の処理は、毎ターン自動実行されるギミックである。 **文字の探索方法とギミックの種類 ここでは文字の探索方法を説明する。 &ref(P_stage0.JPG) 上記のような盤面で赤丸に文字を置いた時どう処理すればよいかを説明する。 &ref(P_stage1-2.JPG) 上記のように全経路探索を行うことになる。 赤丸から出発して全ての全経路探索をし、最後に左側、真ん中、右側の文字列を組み合わせることになる。 全経路探索には亀のたとえ話を使う。 亀は、左向きLと右向きRの2種類。 亀は、マスにはいるたびに文字を覚えながら(Bufferに溜め込みながら)ヒトマスずつすすむ。 2*2マスなどの分岐のできるマスにたどり着くと、そこで片方の道を選び進む。 先が進めない行き止まりになるか、拾った文字が8文字になると、そこで引き返し 手前の分岐点まで戻り、また文字を覚えながら分かれ道を進む。 全ての経路を徹までこれを繰り返し、全ての経路を調べたら 2匹の亀の集めた文字列と、真ん中の文字列を組み合わせた単語になっているかのチェックを行い得点を計算する。 文字列照合の例 画像用意中 &ref(P_stage1-3.JPG) 亀には左向きと右向きいるが、左向きはユーターンますは行き止まりと同じだが、右向きは通れるという違いがある。 上下でも同じである。 [[裏企画_プログラム定数一覧表]]要印刷 *ギミック一覧 ---- **文字系ギミック *** 得点処理が起こらない文字ギミック えらぶ君から選んで盤面に使用することで、効果を発揮する。 - 消しゴム文字 回収文字 ギミック文字 ギミック回収文字 の4種類である。 得点処理が行われないので、シンプルに記述できる。 &ref(mutokutenGimkku) ---- 0 消しゴム文字。 適用する升目のマスオブジェクトの文字を空白文字にして、あとは処理終了だけの単純な文字である。 消しゴム処理後は"自動実行ギミック"まで処理を飛ばす。 消しゴム文字はプロパティをType=0 mogi=""として普通の文字同様に扱い、マスに文字があるならその文字を""にして終了する。 文字が無いマス、文字を置けないマス(マスオブジェのmoziOKフラグがFalse)に対しては適用できない。 具体的な処理は、マスに文字を置く"文字置き時イベント"に、消しゴム文字専用の分岐処理をつけて行う。 フローチャート &ref(kesigomu.JPG) 適用がコピー枡の場合の処理については後述する。 ---- 1 回収文字 文字オブジェクトのプロパティをtype=1 mogi=""として扱う。 適用マス文字があるなら、その文字を盤面から回収して白紙マスにもどし、文字をえらぶくんにもどす。 基本的な処理は消しゴムと同じ、回収した文字をえらぶ君に追加するAddMoziメソッドが増えているだけである。 &ref(mozikaisyuu1.JPG) ---- 2 ギミック文字 盤面にギミックを置き、上書きできる。 &ref(gimikkumozi.JPG) 具体的な処理について。 文字オブジェクトのプロパティをtype=2 mogi=""として扱う。 基本の文字オブジェクトに、マスオブジェクトを保持するためのmasuプロパティを追加する。 マスに適用時するときは、升目の参照している升オブジェクトへの参照を削除し、文字オブジェクトのマスオブジェクトを参照させる処理を行う。 6行8列目のマスを変更する例。 mm=mozi.masu sm=stage.map(6)(8).masu mm.rowSize=sm.rowSize’行サイズを合わせる mm.colSize=sm.colSize'列サイズを合わせる mm.liset=sm.list'参照しているマスのリスト sm=mm'置き換える。 置き換え後は"文字列探索・得点処理"を行わず、"毎ターン自動実行ギミック"まで処理を飛ばすのは消しゴム文字と同様である。 ギミック文字に使用できるギミックの種類と、巨大マスへギミック適用をした場合の処理は後日掲載する。 Copyマスへの適用時はCopyマスで説明する。 ---- 3 ギミック回収文字 回収文字が文字を回収するように、盤面からギミックを回収する事が可能。 回収したギミックはギミック文字とし、addMoziメソッドを使用して選ぶ君に追加する。 改修先のますは白紙ますに戻す。 追加時の注意としては回収先のマスが巨大マスの場合、大きさは無視し、1*1マスのギミック文字としてえらぶ君に追加する。 回収先のマスは単なる白紙の巨大マスとする。 文字オブジェクトのプロパティはtype=3 として扱う。 回収できるギミックについてはギミック文字で使用できるものと同様とする。 具体的にはマス種類を現すType(実数)に基づいて回収可能かどうかを判断する。 処理終了後は、"毎ターン自動実行ギミック"まで処理を飛ばす。 *** 文字系ギミック2 得点処理が起こる文字ギミック -上書き文字 引っ張り文字 繋がり文字 巨大文字 フローを示す。 &ref(tokutenGimkku) 得点処理がつくのが違う点である。 ---- 上書き文字 mozi.type=4 文字を上書きする。 そのマスに空文字もしくは文字が存在し、マスオブジェのmoziOKフラグがTrue の時に限り文字を上書きし、その後は普通に文字を置いた時と同じ処理とする。 参考画像。 &ref(uwagakimozi1.JPG) ---- 引っ張り文字 上下左右にある文字を引っ張る。 引っ張る先の文字がCopyマス、もしくは巨大増すの先に複数候補が ある場合についての説明は現在画像製作中である。 ---- 繋がり文字。 "文字の探索方法とギミックの種類"で紹介した亀を必要な数だけ、用意し7文字か8文字探索させることで整合性を取る。 参考図。 &ref(tunagarimozi.jpg) 上手の場合青方向に7文字まで調べる亀を2匹で1セット、赤と緑方向に8文字まで調べる亀を1セットずつの計3セットで順番に探索を行う。 もちろん2文字のどちらかが文字を置けないマスにかかる場合当然のことながら繋がり文字は置けない。 ---- 巨大文字 ---- *** 升目ギミック1 文字の探索に関わるギミック - ユーターンマス 壁 ラウンドマップ お邪魔ブロック *** 升目ギミック2 升目に変化を与えるギミック - A群 くぼ地マス 爆弾マス - B群 めんこマス 幽霊マス *** 升目ギミック3 マス移動に関わるギミック - 平行移動 回転移動 * 盤面に文字が置かれるたびに無条件に効果が発動するギミック 毎ターン自動実行ギミック。 風化マス、コンベアマス ---- * 2行3列や4行2列などの巨大マスがもたらす問題。