チェックボックスの使い方
- 正誤判定:正解集合と回答集合との重なり関係で判定(正誤で分岐)
- 正誤判定は上と同じだが、正解するまで繰り返し
- 正誤判定:正誤判定して正誤の2つで分岐先を変える
- 正誤判定は上と同じだが、正解するまで繰り返し
- 正誤判定と繰り返しは上と同じだが、FBを1回に1つずつ
- 多肢選択:部品・材料などを選ぶ(何を選んでも、行き先は同一)
- 多肢選択:何個以上[または以下]選択しないといけないかが決まっている(何を選んでも、行き先は同一)
- 多肢選択:上と同じだが、特定の要素に着目して、分岐先を変更
(CHECK-1
((*prog
(t ((OPTIONS = ("正解1" "正解2" "誤答1" "誤答2")) ;ここから
(CORRECT = (1 2))
(GO = (ID1 ID2))
(FB = ("正解です。" "不要な選択肢があります。" "足りない選択肢があります。" "不要な選択肢と足りない選択肢の両方があります。" "全く間違っています。")) )) ;ここまで
(t ((CORRECT = (*NTHS $CORRECT $OPTIONS))))
((FB = nil) ((FB = "不正解です。") (FB = ("正解です。" $FB $FB $FB $FB))))
;次の1行は、並び替えをする場合
(t ((L = (*LEN $OPTIONS)) (L = (*RANDOM $L $L)) (OPTIONS = (*NTHS $L $OPTIONS))))
;上の1行は、並び替えをする場合
)
"メッセージ" <BR> ;ここも変更
)
(CHECK $OPTIONS)
$GO
( (t ((FB-KARI = $FB) (FB = "") (OPTIONS = (*NTHS $_SW $OPTIONS))))
((OPTIONS { $CORRECT)(OPTIONS } $CORRECT) ((FB = (*FIRST $FB-KARI)) (GO = (*FIRST $GO)) (PASS <- $_NOW)))
((FB = "")(OPTIONS } $CORRECT) ((FB = (*NTHS 2 $FB-KARI)) (GO = (*LAST $GO))))
((FB = "")(OPTIONS { $CORRECT) ((FB = (*NTHS 3 $FB-KARI)) (GO = (*LAST $GO))))
((FB = "")(OPTIONS & $CORRECT) ((FB = (*NTHS 4 $FB-KARI)) (GO = (*LAST $GO))))
((FB = "") ((FB = (*LAST $FB-KARI)) (GO = (*LAST $GO))))
)
( (t ("あなたは、" $OPTIONS "を選びました。" <BR> <BR> $FB <BR>)) )
)
(CHECK-2
((*prog
(t ((OPTIONS = ("正解1" "正解2" "誤答1" "誤答2")) ;ここから
(CORRECT = (1 2))
(GO = ID1)
(FB = ("正解です。" "不要な選択肢があります。" "足りない選択肢があります。" "不要な選択肢と足りない選択肢の両方があります。" "全く間違っています。")) )) ;ここまで
((_FROM != self) ((COUNT = 0)))
((FB = nil) ((FB = "不正解です。") (FB = ("正解です。" $FB $FB $FB $FB))))
;次の1行は、並び替えをする場合
(t ((CORRECT = (*NTHS $CORRECT $OPTIONS)) (L = (*LEN $OPTIONS)) (L = (*RANDOM $L $L)) (OPTIONS = (*NTHS $L $OPTIONS))))
;上の1行は、並び替えをする場合
)
"メッセージ" <BR> ;ここも変更
)
(CHECK $OPTIONS)
( ((OPTIONS { $CORRECT)(OPTIONS } $CORRECT) $GO) (t self) )
( (t ((FB-KARI = $FB) (FB = "") (OPTIONS = (*NTHS $_SW $OPTIONS)) (COUNT += 1)))
((OPTIONS { $CORRECT)(OPTIONS } $CORRECT) ((FB = (*FIRST $FB-KARI)) (PASS <- ($_NOW $COUNT))))
((FB = "")(OPTIONS } $CORRECT) ((FB = (*NTHS 2 $FB-KARI))))
((FB = "")(OPTIONS { $CORRECT) ((FB = (*NTHS 3 $FB-KARI))))
((FB = "")(OPTIONS & $CORRECT) ((FB = (*NTHS 4 $FB-KARI))))
((FB = "") ((FB = (*LAST $FB-KARI))))
)
( (t ("あなたは、" $OPTIONS "を選びました。" <BR> <BR> $FB <BR>)) )
)
(CHECK-3
((*prog
(t ((OPTIONS = ("正解1" "正解2" "誤答1" "誤答2")) ;ここから
(CORRECT = (1 2))
(GO = (ID1 ID2))
(FB = ("正解1は条件を満たしています。" "正解2は条件を満たしています。" "誤答1は条件を満たしていません。" "誤答2は条件を満たしていません。")) )) ;ここまで
(t ((CORRECT = (*NTHS $CORRECT $OPTIONS))))
((FB != nil) ((FB = (*MAPPING (1 2) (*LIST $OPTIONS $FB)))))
;次の1行は、並び替えをする場合
(t ((L = (*LEN $OPTIONS)) (L = (*RANDOM $L $L)) (OPTIONS = (*NTHS $L $OPTIONS))))
;上の1行は、並び替えをする場合
)
"メッセージ" <BR> ;ここも変更
)
(CHECK $OPTIONS)
$GO
( (t ((FB-KARI = $FB) (FB = "") (OPTIONS = (*NTHS $_SW $OPTIONS))
(LACK = (*DELETE-LIST $OPTIONS $CORRECT)) (OVER = (*DELETE-LIST $CORRECT $OPTIONS)) ))
((LACK = nil)(OVER = nil) ((FB = "正解です。") (GO = (*FIRST $GO)) (PASS <- $_NOW)))
((FB-KARI != nil)(LACK != nil)
((LACK <= $OVER) (FB = (*MAPPING 1 (*ASSOC $LACK $FB-KARI))) (FB = (*MAPPING 1 (*LAST $FB))) (FB -> *UL) (GO = (*LAST $GO))))
((FB-KARI != nil)(LACK = nil)(OVER != nil)
((FB = (*MAPPING 1 (*ASSOC $OVER $FB-KARI))) (FB = (*MAPPING 1 (*LAST $FB))) (FB -> *UL) (GO = (*LAST $GO))))
((FB-KARI = nil)(LACK = nil)(OVER != nil) ((FB = (*CONC $OVER "は不要です。")) (GO = (*LAST $GO))))
((FB-KARI = nil)(LACK != nil)(OVER = nil) ((FB = (*CONC $LACK "が必要です。")) (GO = (*LAST $GO))))
((FB-KARI = nil)(LACK != nil)(OVER != nil) ((FB = (*CONC $LACK "が必要で、" $OVER "は不要です。")) (GO = (*LAST $GO))))
)
( ((OPTIONS { $CORRECT)(OPTIONS } $CORRECT) ("あなたは、" $OPTIONS "を選びました。その通り、" $FB <BR>))
(t ("あなたは、" $OPTIONS "を選びましたが、" $FB <BR>)) )
)
(CHECK-4
((*prog
(t ((OPTIONS = ("正解1" "正解2" "誤答1" "誤答2")) ;ここから
(CORRECT = (1 2))
(GO = ID1)
(FB = ("正解1は条件を満たしています。" "正解2は条件を満たしています。" "誤答1は条件を満たしていません。" "誤答2は条件を満たしていません。")) )) ;ここまで
((_FROM != self) ((COUNT = 0)))
((FB != nil) ((FB = (*MAPPING (1 2) (*LIST $OPTIONS $FB)))))
;次の1行は、並び替えをする場合
(t ((CORRECT = (*NTHS $CORRECT $OPTIONS)) (L = (*LEN $OPTIONS)) (L = (*RANDOM $L $L)) (OPTIONS = (*NTHS $L $OPTIONS))))
;上の1行は、並び替えをする場合
)
"メッセージ" <BR> ;ここも変更
)
(CHECK $OPTIONS)
( ((OPTIONS { $CORRECT)(OPTIONS } $CORRECT) $GO) (t self) )
( (t ((FB-KARI = $FB) (FB = "") (OPTIONS = (*NTHS $_SW $OPTIONS)) (COUNT += 1)
(LACK = (*DELETE-LIST $OPTIONS $CORRECT)) (OVER = (*DELETE-LIST $CORRECT $OPTIONS)) ))
((LACK = nil)(OVER = nil) ((FB = "正解です。") (PASS <- ($_NOW $COUNT))))
((FB-KARI != nil)(LACK != nil)
((LACK <= $OVER) (FB = (*MAPPING 1 (*ASSOC $LACK $FB-KARI))) (FB = (*MAPPING 1 (*LAST $FB))) (FB -> *UL)))
((FB-KARI != nil)(LACK = nil)(OVER != nil)
((FB = (*MAPPING 1 (*ASSOC $OVER $FB-KARI))) (FB = (*MAPPING 1 (*LAST $FB))) (FB -> *UL)))
((FB-KARI = nil)(LACK = nil)(OVER != nil) ((FB = (*CONC $OVER "は不要です。"))))
((FB-KARI = nil)(LACK != nil)(OVER = nil) ((FB = (*CONC $LACK "が必要です。"))))
((FB-KARI = nil)(LACK != nil)(OVER != nil) ((FB = (*CONC $LACK "が必要で、" $OVER "は不要です。"))))
)
( ((OPTIONS { $CORRECT)(OPTIONS } $CORRECT) ("あなたは、" $OPTIONS "を選びました。その通り、" $FB <BR>))
(t ("あなたは、" $OPTIONS "を選びましたが、" $FB <BR>)) )
)
(CHECK-5
((*prog
(t ((OPTIONS = ("正解1" "正解2" "誤答1" "誤答2")) ;ここから
(CORRECT = (1 2))
(GO = ID1)
(FB = (("正解1" "正解1は条件を満たしています。") ("誤答1" "誤答1は条件を満たしていません。") ("誤答2" "誤答2は条件を満たしていません。") ("正解2" "正解2は条件を満たしています。"))) )) ;ここまで
((_FROM != self) ((COUNT = 0)))
;次の1行は、並び替えをする場合
(t ((CORRECT = (*NTHS $CORRECT $OPTIONS)) (L = (*LEN $OPTIONS)) (L = (*RANDOM $L $L)) (OPTIONS = (*NTHS $L $OPTIONS))))
;上の1行は、並び替えをする場合
)
"メッセージ" <BR> ;ここも変更
)
(CHECK $OPTIONS)
( ((OPTIONS { $CORRECT)(OPTIONS } $CORRECT) $GO) (t self) )
( (t ((FB-KARI = $FB) (FB = "") (OPTIONS = (*NTHS $_SW $OPTIONS)) (COUNT += 1)
(ERROR = (*DELETE-LIST $OPTIONS $CORRECT)) (ERROR <= (*DELETE-LIST $CORRECT $OPTIONS))
(ORDER = (*MAPPING 1 (*FIRST $FB-KARI))) (NON-ERROR = (*DELETE-LIST $ERROR $ORDER)) (ERROR = (*DELETE-LIST $NON-ERROR $ORDER)) ))
((ERROR = nil) ((FB = "正解です。") (PASS <- ($_NOW $COUNT))))
((ERROR != nil) ((FB = (*LAST (*ASSOC (*FIRST $ERROR) $FB-KARI))) ))
)
( ((OPTIONS { $CORRECT)(OPTIONS } $CORRECT) ("あなたは、" $OPTIONS "を選びました。" <BR> <BR> "その通り、" $FB <BR>))
(t ($FB <BR>)) )
)
(CHECK-6
((*prog
(t ((OPTIONS = ("選択肢1" "選択肢2" "選択肢3")) ;ここから
(GO = ID1))) ;ここまで
)
"メッセージ" <BR> ;ここも変更
)
(CHECK $OPTIONS)
$GO
( (t ((OPTIONS = (*NTHS $_SW $OPTIONS)) (PASS <- ($_NOW $OPTIONS)))) )
( (t ($OPTIONS "を選びました。" <BR>)) )
)
(CHECK-7
((*prog
(t ((OPTIONS = ("選択肢1" "選択肢2" "選択肢3")) ;ここから
(GO = ID1)
(CORRECT = 2))) ;ここまで
)
"メッセージ" <BR> ;ここも変更
)
(CHECK $OPTIONS)
( ((CORRECT <= 0) $GO) (t self) )
(
(t ((KOSU = (*LEN $_SW))))
((CORRECT <= $KOSU) ((OPTIONS = (*NTHS $_SW $OPTIONS)) (CORRECT = (*- $CORRECT $KOSU)) (PASS <- ($_NOW $OPTIONS))))
;以下の時は、上の行を消して、下の行を使う(以上の時は、以下の行を消す)
((CORRECT >= $KOSU) ((OPTIONS = (*NTHS $_SW $OPTIONS)) (CORRECT = (*- $KOSU $CORRECT)) (PASS <- ($_NOW $OPTIONS))))
)
(
((CORRECT <= 0) ($OPTIONS "を選びました。" <BR>))
(t ($CORRECT "個以上選んで下さい。" <BR>))
;以下の時は、上の行を消して、下の行を使う(以上の時は、以下の行を消す)
(t ("選べる項目は、" $CORRECT "個以下です。" <BR>))
)
)
(CHECK-8
((*prog
(t ((OPTIONS = ("選択肢1" "選択肢2" "選択肢3")) ;ここから
(GO = (("選択肢1" ID1) ("選択肢3" ID3)))) ) ;ここまで
)
"メッセージ" <BR> ;ここも変更
)
(CHECK $OPTIONS)
$GO
( (t ((OUT = (*DELETE-LIST (*NTHS $_SW $OPTIONS) $OPTIONS)) (ORDER = (*MAPPING 1 (*FIRST $GO)))
(ORDER = (*DELETE-LIST $OUT $ORDER)) (OPTIONS = (*NTHS $_SW $OPTIONS))))
((ORDER != nil) ((GO = (*LAST (*ASSOC (*FIRST $ORDER) $GO))) (PASS <- ($_NOW $OPTIONS))))
((ORDER = nil) ((GO = self)))
)
( ((GO != self) ($OPTIONS "を選びました。" <BR>))
(t ("次のステップに進む上で不可欠な要素が選択されませんでした。" <BR>)) )
)