group
groupとは
groupは、個々の問題を目次に載せるのではなく、総合問題のように、
複数の問題のなかから選択して問題として提示するためのものである。
主な用途は、総合問題や、
同種の問題を別問題として定義する場合(答えの位置を変えるなど)に
同種の問題を統合選択するために使う。
今のところgroupはcontentレベルでなければ使えない。
つまり、compレベル(問題として提示されないレベル)にgroupを指定することはできない。
成績はgroupの成績として付けられる。
groupもmodelでその動作を指定する。
group.MixRandom:ランダム、全メンバー一巡
membersの順番をランダムにしたのち、ひとつずつ実行する。
「つづき」で繰り返すと、全memberの問題を提示します。
いったん「もどる」でもどり、再度選択したときは、初期化されるため
あらためてランダム化を行います。
group.OneOf: ひとつのみ選択
毎回membersのなかからランダムに選んで実行する。
大小判定など、2つの中から選択する問題の場合に、問題生成で大小の選択を行なうと、
問題生成が複雑になりすぎるので、選択を上位レベルで行なうために使用する。
group.MixRandomと違い、つづけるときに同じ問題が出る可能性がある。
(この機能はcompレベルで使いたい理由)
メンバー
複数の問題のなかから選択して出題するgroupで使うmembersは、
「members="1012011/1012012/1012013/1012014"」のように、
contentかcompのidを/で区切って羅列しているだけだ。