ひゃっほーい!

 タロットのスクリプト、ほぼ完了! いえーい!
 色々凝ったことをやったので(といってもTJSなんて殆ど使ってないけど)結構ヘヴィでした。変数の代入が巧く行かないのでおかしいなーと思ってたら二次元配列のカッコが閉じてなかったとかそりゃあもう。
 http://www.piass.com/kpc/のTIPS集からぱちって来たネタ。忘れないようにメモを取っておく。いわゆる覚え書きです。ハイ。

;選択肢を複数、ランダムに表示 s0は常に正解。
;@sentaku s0="" s1="" s2="" s3=""

[macro name="sentaku"]
@eval exp="f.data = [[mp.s0, '*right1'], [mp.s1, '*mistake'], 
[mp.s2, '*mistake'], [mp.s3, '*mistake']]"

@eval exp="f.tmp = intrandom(0,3), f.data[0] <-> f.data[f.tmp]"
@eval exp="f.tmp = intrandom(0,3), f.data[1] <-> f.data[f.tmp]"
@eval exp="f.tmp = intrandom(0,3), f.data[2] <-> f.data[f.tmp]"
@eval exp="f.tmp = intrandom(0,3), f.data[3] <-> f.data[f.tmp]"

[delay speed=nowait]
[link target="&f.data[0][1]"][emb exp="f.data[0][0]"][endlink][r]
[link target="&f.data[1][1]"][emb exp="f.data[1][0]"][endlink][r]
[link target="&f.data[2][1]"][emb exp="f.data[2][0]"][endlink][r]
[link target="&f.data[3][1]"][emb exp="f.data[3][0]"][endlink][r]
@timerstart
[delay speed=user][s]

 選択肢の中身をマクロにして表示する。リンク先が違う場合はラベル名の入ってるところもマクロにすれば、毎回表示順がランダムに変わる選択肢の出来上がり。まこんなの難しくも何ともないのですが、こんなのに異様に苦労してました。


 こちらは���������꿩��さんから戴いた方法。
 まず、こちらの「カードゲームを作ろう」からランダムに数字を投入した配列を生成。f.quizは出題数を記録する変数です。最初にevalタグでf.quiz=0を代入しておくのを忘れないように。
 で、配列の頭から順番に数字を引っ張り出す。

@eval exp="f.rabel = '*rabel' + f.suji[f.quiz]"
@eval exp="f.quiz = f.quiz + 1"
@jump target="&f.rabel"

問題数f.quizを添え字にしているので、被ることはない訳です。
 このf.suji[f.quiz]

@image storage="&f.suji[f.quiz]+'_b'"

 などとファイル名に代入も出来るので、画像ファイル名を全部連番の数字にすれば特定のラベルで特定の画像を表示なんて処理も一纏めに出来るです。