ではでは、スクリプト解説の時間ですよ~。
プレイされた方もそうでない方も、よろしくお願いします。
とは言うものの、1度プレイしてもらった方がシステムが分かっていいと思います。


早速ですが、今回は・・・
jump(分岐)とflag(フラグ)が使われています。
説明のために、第3問の問題と答えを持ってきました。

---
#s03

第3問

IAの声は誰?

#jump:31
中島愛
#jump:32
喜多村英梨
#jump:33
Lia
#end
---
#s31

残念、正解はLia

#next:04
#end
---
#s32

残念、正解はLia

#next:04
#end
---
#s33
#if_flag:02
#flag_on:03
#elsif_flag:01
#flag_on:02
#else
#flag_on:01
#endif

正解!

#next:04
#end
---


問題部分は問題ないと思います。
jumpを使用して答えを分けていますね。

ここでポイントなのは、全ての答えをちゃんと別々のページに飛ばすこと。
スクリプト的には、jump:31とjump:32は分ける必要はありません。
解答ページを見て分かるように同じ内容のページに飛んでいます。
しかし、プレーした場合にリンク先が同じ場合にコレが不正解ということがばれてしまいます。
なのでjump:31とjump:32を分けています。


次に解答ページです。
最終ページで正答率を出せたのは、ここで何問正解したかカウントしていたからです。
正解のページでのみフラグのカウントを増やしていました。
今回は、見易さのためにフラグNo=正解数となっています。

#if_flag:02  フラグ02が入っているなら(前までの正解数が2なら)
#flag_on:03  フラグ03を入れる(正解数を3にする)

#elsif_flag:01 フラグ01が入っているなら(前までの正解数が1なら)
#flag_on:02   フラグ02を入れる(正解数を2にする)

#else     フラグが入っていないなら(前までの正解数が0なら)
#flag_on:01 フラグ01を入れる(正解数を1にする)
#endif

問題数に応じてelsif_flagの部分が増えていきます。(最後に全貌を載せているので確認できます)

コマンドの右に:をつけるとその後に文字を書けるという裏技を使えば、
#if_flag:02:前までの正解数が2なら
#flag_on:03:正解数を3にする
こんな感じでメモを残しておくこともありでしょうか。


後、言っておく事はシーンNoでしょうか。
よく見ている方は不思議に思ったかもしれません。
何故s03からs31に飛んでいるのか・・・?
これは、自分の見易さ・処理のし易さの関係で、
問題ページでは、10の位を0、問題番号を全て1の位にし、
解答ページでは、問題番号を10の位、解答を1の位にしたためです。
自分が後で処理しやすいように配置することをお勧めします。

次へ

【解説書】クイズを作ってみよう!ver.1.2 s.60
やめる