フローデザイナーを使っておみくじを引くフローを作成しました。
今回のフローの全体は下図のようになります。
解説
乱数の作成
1つ目のマッパーでRandを使って乱数を作成します。作成した乱数をフロー変数ransu(Integer型)に入力します。マッパーの中身は下図の通りになります。(画像をクリックすると拡大されます)
※Randのプロパティで最小値以上最大値未満の値が乱数として出力されるため、0から5の乱数を出力したい時は最小値0、最大値6と設定します。
乱数(0~5)からおみくじ結果(大吉~凶)への変換
2つ目のマッパーで乱数(0~5)からおみくじ結果(大吉~凶)へ変換して別のフロー変数kekka(String型)に入力します。
変換後の結果は以下の通りです。
- ransuの値が0→大吉
- ransuの値が1→中吉
- ransuの値が2→小吉
- ransuの値が3→吉
- ransuの値が4→末吉
- ransuの値が5→凶
マッパーの中身は下図の通りになります。条件付きレイヤーを使って処理を分岐しています。
※大吉以外の条件付きレイヤーでも条件式が異なるだけで、constを使ってフロー変数kekkaにおみくじの結果を入力しているだけになります。
(画像は省略)
結果による分岐
switchを利用することで、おみくじの結果によって分岐が行えます。下図のようにswitchのプロパティで「評価する値」に、おみくじの結果を入力しているフロー変数kekkaを設定します。(画像をクリックすると拡大されます)
分岐の値はswitchのプロパティにある分岐タブから行えます。今回のフローでは下図のようになります。
分岐後の戻り値を設定
下図のように、フロー変数kekkaとconstでのメッセージをconcatでつなげることで、メッセージを作成しています。
大吉から末吉まではフローを合流させているので、おみくじの結果以外のメッセージは同じです。
凶の場合
デフォ(どれにも当てはまらない場合)
実行結果
実行するごとにRandの範囲で結果が変わります。