Ich präsentiere Ihnen einen Test! Ihr Test ist zu testen. Der Test besteht darin, den Probanden mit Tests zu testen, die Ihnen ein Tester in der Shortest - Codemenge gibt. Insbesondere geben Sie einen Multiple-Choice-Test, den Sie als Eingabe erhalten haben.
In dieser Herausforderung müssen Sie eine Eingabe wie folgt vornehmen:
1. Our site is called Programming Puzzles & Code ________.
A: Debugging
*B: Golf
C: Hockey
D: Programming
2. What is the *most* popular tag on our site?
A: [debug]
B: [program]
*C: [code-golf]
D: [number]
E: [c++]
3. We are part of the ________ Exchange network.
*A: Stack
B: Code
C: Programmer
D: Hockey
4. Is this the first question?
A: Yes
*B: No
5. Is this the last question?
*A: Yes
B: No
Und hier ist ein Beispiel für den Test:
1. Our site is called Programming Puzzles & Code ________.
A: Debugging
B: Golf
C: Hockey
D: Programming
answer: B
correct!
2. What is the *most* popular tag on our site?
A: [debug]
B: [program]
C: [code-golf]
D: [number]
E: [c++]
answer: C
correct!
3. We are part of the ________ Exchange network.
A: Stack
B: Code
C: Programmer
D: Hockey
answer: B
incorrect! the answer was A
4. Is this the first question?
A: Yes
B: No
answer: B
correct!
5. Is this the last question?
A: Yes
B: No
answer: B
incorrect! the answer was A
overview:
3 correct, 2 incorrect (60%)
3. We are part of the ________ Exchange network.
you chose B: Code
the answer was A: Stack
5. Is this the last question?
you chose B: No
the answer was A: Yes
Formale Spezifikation:
- Eingang
- Beginnt eine Zeile mit einer Zahl, gefolgt von einem Punkt und einem Leerzeichen, handelt es sich um eine Frage mit dieser Zahl. Die Zahlen beginnen immer bei 1 und steigen bei jeder Frage um 1.
- Wenn eine Zeile mit einem optionalen Sternchen, einem Buchstaben, einem Doppelpunkt und einem Leerzeichen beginnt, ist dies eine Antwort. Die Antworten werden auch immer sequentiell sein. Pro Frage gibt es nur eine richtige Antwort.
- Eine Zeile beginnt nicht anders als auf die zuvor genannten Arten.
- Eingaben können in irgendeiner Weise akzeptiert werden (Lesen aus einer Datei, stdin usw.), dürfen jedoch nicht fest in Ihr Programm codiert werden.
- Ausgang (Testphase)
- Drucken Sie zunächst jede Frage nacheinander aus. Drucken Sie die Frage und ihre Antworten wie in der Eingabe erhalten aus, aber drucken Sie nicht das Sternchen, das die richtigen Antworten angibt.
- Drucken Sie dann eine neue Zeile und
"answer: ". Warten Sie auf Benutzereingaben. Benutzereingaben entsprechen immer einer Antwort. - Wenn die richtige Antwort (die mit einem Stern) mit der vom Benutzer eingegebenen identisch ist, wird sie ausgegeben
"correct!". Andernfalls wird ausgegeben"incorrect! the answer was " + correct_letter. - Trennen Sie jede Frage mit einer Leerzeile und wiederholen Sie die vorherigen Ausgabeschritte, bis keine Fragen mehr vorhanden sind.
- Ausgabe (Übersichtsphase)
- Drucken Sie
"overview: "und dann eine neue Zeile. - Drucken
"{number of correct answers} correct, {incorrect answers} incorrect ({percent correct, rounded to the nearest whole number}%)"(natürlich die Phrasen in geschweiften Klammern durch ihre jeweiligen Werte ersetzen). Dann drucken Sie eine leere Zeile für den Abstand. - Drucken Sie nun für jede Frage, die falsch war, die Frage (nicht die Antworten) in einer neuen Zeile
"you chose " + answer_you_choseund in einer anderen Zeile aus"the answer was " + correct_answer. Trennen Sie die Übersicht jeder falschen Antwort mit einer Leerzeile.
- Drucken Sie
- Um das Schummeln zu reduzieren, indem Dinge wörtlich interpretiert werden, wenn hier dieselbe Ausgabe und in der Testphase dieselbe Eingabe erfolgt, muss Ihr Programm genau dasselbe wie die Beispielausgabe ausgeben.
Das ist Code-Golf ; kürzester Code gewinnt! (Und bekommt ein A + (grünes Häkchen)!)

\d\.,\w:und\*in der Mitte von Fragen / Antworten. (Zum Beispiel kann derzeit die*mit beseitigt werdeny/*//, während der richtige Weg langwierig ists/^\*//.)