見出し画像

なでしこさんで増える運ゲー

あっという間にまた今週分のnoteを書いていない日曜日がやってきてしまった。
これまた書いてなかったQiitaの記事を書いていたら、頭が悪いからか大量の時間を消費してしまい、今日も大変遺憾なことに書きたいことを書くための作業時間がとれず。
しょうがないですね。今日も元気に雑プログラムで繋いでいこう。

今回やったこと

なでしこで、「増える運ゲー」を作った。

まず、2択の問題が出題される。
どっちが正解かはランダムである。
正解すると、3択に増え、またランダムに正解が決まる。
同様に、正解し続けると、どんどん選択肢が増えていく。
しかし、正解は常に1個だけなので、どんどん当たりにくくなっていく。
正解でない選択肢を選んでしまうと、2択の問題に逆戻り。
何択問題までいけるか!?

プログラム

増える運ゲー (プログラム貯蔵庫)

ポイント

UIの用意

DOM親要素の「行揃え」に「中央」をDOMスタイル設定。
「増える運ゲー」のラベル作成。
それの「文字サイズ」に「300%」をDOMスタイル設定。
2回、改行作成。
「どーれだ?」のラベル作成。
2回、改行作成。

画面に表示する文字を置く。
ボタンを置く位置の前に改行を置き、ボタンを置く用意をする。

ボタンの数を設定する関数の用意

定数のボタンリストは空配列。

●(Nに)ボタン数設定とは
  ボタンリストの要素数がN未満の間
    定数のボタン番号はボタンリストの要素数に1を足す。
    定数の新ボタンは「{ボタン番号}」のボタン作成。
    新ボタンにボタン番号をDOMポケット設定。
    {関数}クリック処理で新ボタンのクリックした時。
    ボタンリストに新ボタンを配列追加。
  ここまで。
  ボタンリストの要素数がN超の間
    ボタンリストからNを配列切り取ってDOM部品削除。
  ここまで。
ここまで。

選択肢を表すボタンの数を、引数で設定した数にする。
ボタンが足りないときはボタンを作り、ボタンが多すぎるときはボタンを消す。

ボタンを作る際は、「DOMポケット設定」でボタンの番号をボタンに書き込み、後でどのボタンが押されたのかがわかるようにする。

ボタンを消す際は、配列からの値の取得とその値の削除が同時に行える「配列切取」を活用する。

出題を行う関数の用意

選択肢数は未定義。
正解は未定義。

●(Nの)出題とは
  Nにボタン数設定。
  選択肢数はN。
  正解は1からNの乱数範囲。
ここまで。

選択肢の数を指定して、出題を行う。
正解を決める際は、「乱数範囲」を用いて、1から始まる範囲の乱数を一発で生成するようにした。

解答を行う関数の用意

●クリック処理とは
  定数の解答は対象のDOMポケット取得。
  もし、解答が正解と等しいならば
    選択肢数に1を足して出題。
  違えば
    「残念!ハズレ!{改行}選択肢数:{選択肢数}{改行}正解:{正解}{改行}あなたの解答:{解答}」と言う。
    2の出題。
  ここまで。
ここまで。

解答、すなわちボタンのクリックが行われた際の処理を行う。
まず、「DOMポケット取得」で、押されたボタンの番号を取得する。
それが正解の場合は、現在の選択肢の数から1増やした選択肢数の問題を出題する。
不正解の場合は、正解を表示し、2択の問題を出題する。

最初の出題

2の出題。

最初の2択問題を出題する。

おわりに

2択を連続で選んでいくゲームですらなかなか続かないのに、こんなのできるわけねーだろバーカ。
こんなんやるくらいならガチャシミュレータしたほうがいいだろ。

いいなと思ったら応援しよう!

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
なでしこさんで増える運ゲー|みけCAT
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1