トリガーエディターと共に散りぬ

ゲームに関する、日本語の記事が出回ってなさそうな小ネタなど

光る順番記憶ゲーム

以前、ツイッターにて紹介しましたこのゲーム

youtu.be

 

そろそろ新作を作りたいので解体します;;

トリガーエディターのコード保存させてくれぇ・・・

 

ということで中身紹介。

今回、3つのホームネットワークパソコン(以降PC)にそれぞれ役割を与えました。

①ライトをランダムに点灯させるPC

②レバー入力による回答を待ち受けるPC

③正解判定を行うPC

 

それぞれ簡単にですが解説します。

コードは長すぎて正直読まないと思うので・・・

考え方とかが参考になれば幸いです。

①ライトをランダムに点灯させるPC

f:id:ms2messer:20190802193103j:plain

①全景

本当は、ライトを6本にしたかったり、完全ランダムとはいかないまでも

6通りぐらいの光るパターンを準備できるかな、と思っていたのですが

③の正解判定が思ったよりコードを圧迫してしまい

泣く泣くライト3つの3パターンになりました。。。

せめて難しくしようと、9回光らせるようにしました。

 

ライトを左から1 2 3として、1ステートで3回まで点滅でいるので

1パターン目 132→321→213

2パターン目 231→321→213

3パターン目 231→312→123

の順で光らせることとしました。

1パターン目と2パターン目の中~後半部分は被らせて圧縮しています。

また、1→1のように同じライトを連続で点滅させるとコードが長くなるので回避。

f:id:ms2messer:20190802194056j:plain

1パターン目

f:id:ms2messer:20190802194254j:plain

2パターン目

f:id:ms2messer:20190802194407j:plain

3パターン目


1stateで3回点灯させるやり方は、ビットカウンターの応用なので割愛します。

 


この3パターンのどれになるか、はランダムにということで

f:id:ms2messer:20190802195307j:plain

レバー待ち受け

3つのステートをグルグルまわりながら、ゲーム開始スイッチが押されるのを待ちます。

 

 

また、ライトを光らせると同時に

足場の下に隠れているおじさんたちを動かします。

 

以下のように27人のおじさんを配置

123456789 ←右のライトが光ったら動く

123456789 ←真ん中のライトが光ったら動く

123456789 ←左のライトが光ったら動く

↑   ~    ↑

1回目の点灯~  9回目の点灯

 

光ったライトの位置に対応したおじさんをONにすることで

どのライトがどの順に光ったかをおじさんに記憶させました。

 

②レバー入力による回答を待ち受けるPC

一通り光り終わった後、プレイヤーはレバーで回答を入力します。

この時、回答に対応した位置のおじさんの動きをOFFしていきます。

ライトの光ったところのおじさんのみがON状態のはずなので、

それらがすべてOFFとなり、

最終的に動いているおじさんがいなくなれば見事正解

誰か一人でもONで残っていたら不正解です。

f:id:ms2messer:20190802201523j:plain

回答入力全景

9回答えを入力してもらうので回答1~9の待ち受け、

リセット処理とか全然関係ないときにガチャガチャされたりしないように

スタート待ちのステートでちょうど10ステートです。

f:id:ms2messer:20190802201832j:plain

f:id:ms2messer:20190802201958j:plain

f:id:ms2messer:20190802202108j:plain

 

③正解判定を行うPC

そして正解判定。こいつが苦労しました・・・

話としては全てのおじさんがOFFになってるか?を調べて

OFFならクリア、一人でもONがいたら出直してこいっていうだけなんですが

 

一つ目のIF文→1人目のおじさんはONになってないか?

二つ目のIF文→2人目のおじさんはONになってないか?

三つ目のIF文→次のステートに移動する

という作りとなっているため

1ステートで2おじさん分のONOFF判定しかできないんですよね・・・。

つまりどんだけ頑張っても10ステート×2おじさん=20おじさんまで。

さっき調子にのって27おじさんも配置してしまったので

どうみても足りません・・・

なんかうまい書き方がないかと模索したのですが思いつかず。

ということでライトの光りかたのパターン=見るべきおじさんの数

を頑張って圧縮しました。

 

 

再掲。 

f:id:ms2messer:20190802210255p:plain

赤枠にそって、縦にみていくとわかるのですが

1回目の点灯はかならず1か2

2回目の点灯に至っては3しか点灯しない としました。

これにより一見バラバラにみえますが

ある程度ライトの光パターンをかぶせることで、

裏でうごく可能性のあるおじさんの数を15体まで減らしました。

15体であれば8stateでON/OFF判定ができます。

f:id:ms2messer:20190802210349j:plain

 

ソースは以下の通り

f:id:ms2messer:20190802210718j:plain

この正解判定、すごく時間がかかるので

On ConditionにシンプルスタンドのONOFFを書いてチカチカさせることで

プレイヤーの気を紛らわせていますw

 

f:id:ms2messer:20190802211316j:plain

f:id:ms2messer:20190802211329j:plain

おじさんが一人でもONだったら、外れ判定用スイッチをONにしています。

 

 

そして最後に正解・はずれ判定。

正解ならドアをあけて

はずれなら全部元通りにして待ち受けに。

(スイッチの数も多いのでもうゴチャゴチャですが・・・)

f:id:ms2messer:20190802211504j:plain

 

 

もっかい作れと言われても、もういいかな・・・。

土日に壊して、新作ゲーム作ろうと思います

8月中旬には公開できるかな?お楽しみにー!