Der BlockModifier (verfügbar ab Build 1492)
Einführung
Der
BlockModifier kann Reihenfolgen zufällig vertauschen oder rotieren. Diese Funktionalität lässt sich symmetrisch auf
- Fragebogenseiten
- Fragen auf einer Seite
- Antworten einer Frage
anwenden.
Beispiele
Beispiel 1: Blockrotation von Seiten
void start() {
// Instantiate with questionaire
BlockModifier bm = new BlockModifier(qst);
bm.addBlock(2);
bm.addBlock(4,5);
bm.addShuffledBlock(12, 15);
bm.shuffle(); // or bm.rotate();
}
In diesem Beispiel werden die Seite 2, die Seiten 4-5 und die Seiten 12-15 als Blöcke definiert. Über
bm.shuffle() werden diese Blöcke dann zufällig verwürfelt. Ein
bm.rotate() würde die Blöcke wie ein Band rotieren.
Zusätzlich werden die Seiten 12 bis 15 über
addShuffledBlock() innerhalb des Blockes zufällig angeordnet.
Es werden die ganzen Seiten vertauscht, so dass eine zugeordnete Seitenlogik erhalten bleibt.
Beispiel 2: Antworten zu einer Frage blockweise tauschen
void start() {
// Get the question
com.pilodata.formgen.Question q = qst.findQuestion("stan");
// Instantiate with question
BlockModifier bm = new BlockModifier(q);
// Define a shuffled block from answer 0 to 3
bm.addShuffledBlock(0,3);
// Define a shuffled block from answer 4 to 7
bm.addBlock(4,7);
// call to shuffle
bm.shuffle();
}
In diesem Beispiel werden die Antworten zu der Frage
stan vertauscht.
Die Antworten mit den Indizes 0 bis 3 (
Achtung: fängt bei 0 an) werden innerhalb des Blockes zufällig angeordnet.
Die Antworten mit den Indizes 4 bis 7 werden als Block definiert und dann über
shuffle() gegeinander zufällig vertauscht.