フローデザイナーを使って数当てゲームを作成しました。
今回のフローの全体は以下のようになります。
今回使用するフロー変数と外部変数セットは以下のようになります。
遊び方
実行時にフロー変数NyuuryokuKazuに0~9の値を入力してフローを実行してください。
0~9の間で正解の数は決定されます。
解説
①正解するか3回失敗するまで正解の数は同じにする。
外部変数セットのアプリケーション変数SetZumiCheckが0なら分岐先のマッパーで正解の値をAteruKazuにrandで設定します。
(失敗が1~2回で、正解の値を変更しない場合は1が入っているので、フローはそのまま下に流れます。)
②正解の値と自分が予想した値を比較して結果をフロー変数に入れる。
条件付きレイヤーを使って外部変数セットのアプリケーション変数AteruKazuとフロー変数のNyuuryokuKazuの値を比較します。
値は、大きい/小さい/同じで判定して結果によって異なる値をフロー変数のHanteiKekkaに入れます。
※画像を省略していますが、「数が同じ」レイヤーと「当てる数はより大きい」レイヤーでは条件式と外部変数セットの定数からとっている値が異なります。
- 「数が同じ」レイヤー:条件式は$exvar.ExVar1.AteruKazu = $flow.NyuuryokuKazu:外部変数セットのSeikaiから値を取ります。
- 「当てる数はより大きい」レイヤー:条件式は$exvar.ExVar1.AteruKazu > $flow.NyuuryokuKazu:外部変数セットのOokiiから値を取ります。
③Switchで分岐後、失敗の場合の処理。
フロー変数Hanteikekkaの値によって処理が分岐します。
失敗の場合は正解の値を変更しないようにマッパーでSetZumiCheckを1にして、失敗の回数を数えるShippaiKaisuに1を足します。
失敗が1~2回までならフローはそのまま下に流れて予想した値が正解の値より大きい/小さいを戻り値として返します。
3回失敗した場合は右側のフローに遷移して正解の値が更新されたことを戻り値として返し、SetZumiCheckを0にするので次回の実行で正解の値が更新されます。ShippaiKaisuも0に戻るため、また2回まで失敗できます。
④Switchで分岐後、正解の場合とそれ以外の場合の処理。
正解であること、エラーであることを戻り値として返し、SetZumiCheckを0にするので次回の実行で正解の値が更新されます。ShippaiKaisuも0に戻るため、また2回まで失敗できます。
正解の場合
それ以外の値の場合