なでしこさんでみけにゃん運試し
この前買ったヴァイスシュヴァルツのカードを開封するぞ!
→ せっかくだからヴァイスシュヴァルツのゲームのルールも学んでみるぞ!
→ このままの勢いで大会にも参加してみるぞ!
→ あーあ、今週も書こうと思っていることを書く時間が無さそうだ……
というわけで、今日も元気に雑プログラムで繋いでいく。
そういえば、今日は2月22日……にゃんにゃんにゃん……だったな……
今回やったこと
なでしこ で、「みけにゃん運試し」を作った。
基本ルール
4桁の数字 (各桁は1・2・3・4のいずれか) がランダムで出てくる。
以下で定義する「いい数字」が多ければ多いほどラッキー!
逆に、「すごくよくない数字」がいっぱい出たらアンラッキー!
いい数字
2:「にゃん」を連想する。ねこかわいい
3:「みけ」を連想する。みけかわいい
よくない数字
1:「ワン」を連想する。犬は猫と対極である
すごくよくない数字
4:「死」を連想する
大石泉すきボーナス
「1111」は、基本ルールで解釈すると「ワンワンワンワン」であり、いい数字は0個と、あまりよくない結果である。
しかし、この数字は大石泉の誕生日である11月11日を連想し、大石泉すきなので、大ラッキー!
プログラム
みけにゃん運試し (プログラム貯蔵庫)
ポイント
UIの用意
DOM親要素の「行揃え」に「中央」をDOMスタイル設定。
タイトルは「みけにゃん運試し」のラベル作成。
それの「文字サイズ」に「300%」をDOMスタイル設定。
改行作成。
結果ラベル配列は空配列。
4回、繰り返す
空のラベル作成。
結果ラベル配列にそれを配列追加。
ここまで。
改行作成。
運試しボタンは「運試す」のボタン作成。
それの「文字サイズ」に「150%」をDOMスタイル設定。画面に以下の要素を配置する。
タイトル (兼、出た数字を表示する欄)
出た数字の解釈を表示する欄
ランダムな数字とその解釈を出すボタン (運試しボタン)
運試し処理
運試しボタンがクリックされた時、以下の処理を行う。
定数のランダムバイトは(1のランダム配列生成)@0。「ランダム配列生成」を用いて、品質が良いことが期待できる乱数を生成する。
1~4の数字は4通りで、これはちょうど2ビットで表せる。
これが4桁あると、ちょうど8ビット、すなわち1バイトになる。
そこで、1バイトの乱数を生成する。
変数の結果数字は空。
位置で0から3まで繰り返す
定数の結果桁はAND(SHIFT_R(ランダムバイト, 位置×2), 3)+1。
結果数字は結果数字と結果桁を文字列連結。
結果桁で条件分岐
1ならば
結果ラベル配列@位置に「ワン」をテキスト設定。
結果ラベル配列@位置の「文字サイズ」に「75%」をDOMスタイル設定。
ここまで。
2ならば
結果ラベル配列@位置に「にゃん」をテキスト設定。
結果ラベル配列@位置の「文字サイズ」に「200%」をDOMスタイル設定。
ここまで。
3ならば
結果ラベル配列@位置に「みけ」をテキスト設定。
結果ラベル配列@位置の「文字サイズ」に「200%」をDOMスタイル設定。
ここまで。
4ならば
結果ラベル配列@位置に「死」をテキスト設定。
結果ラベル配列@位置の「文字サイズ」に「75%」をDOMスタイル設定。
ここまで。
違えば、結果ラベル配列@位置に空をテキスト設定。ここまで。
ここまで。
ここまで。
タイトルに結果数字をテキスト設定。生成した乱数のバイトから2ビットずつ取り出し、1を足すことで結果を一桁生成する。
その生成した桁で条件分岐を行い、解釈を表示する。
このとき、いい数字の解釈は大きい文字で、そうでない数字の解釈は小さい文字で表示するようにした。
もし、結果数字が「1111」ならば
結果ラベル配列を反復
対象に空をテキスト設定。
ここまで。
結果ラベル配列@0に「大石泉すき!」をテキスト設定。
結果ラベル配列@0の「文字サイズ」に「200%」をDOMスタイル設定。
ここまで。大石泉すきボーナスの判定をする。
生成された数字が「1111」ならば、大石泉すきボーナスを適用し、解釈の表示を変更する。
1個の解釈欄で「大石泉すき!」を表示し、使わない解釈欄は空にする。
運試しボタンに「リトライ」をテキスト設定。一度生成を行ったので、運試しボタンのテキストを再生成用に変更する。
おわりに
みけはかわいい
ねこはかわいい
それらが組み合わさったみけねこは、かわいいかわいい、すなわちかわいい
大石泉すき


コメント