私はあなたにテストを提示します!あなたのテストはテストすることです。テストは、短いテスト量のコードで、テスターが提供するテストで受験者をテストすることです。具体的には、入力として受け取った多肢選択テストを行います。
この課題では、次のような入力を行う必要があります。
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
そして、ここで行われているテストの例です:
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
正式な仕様:
- 入力
- 行が数字で始まり、その後にドットとスペースが続く場合、それはその数字の問題です。番号は常に1から始まり、質問ごとに1ずつ上がります。
- 行がオプションのアスタリスク、文字、コロン、そしてスペースで始まる場合、それは答えです。回答も常に連続します。質問ごとに正解は1つだけです。
- 行は、前述の方法以外の方法では開始しません。
- 入力はどのような方法(ファイル、標準入力などからの読み取り)でも受け入れられますが、プログラムにハードコーディングしてはなりません。
- 出力(受験段階)
- まず、各質問を順番に印刷します。入力で受け取った質問とその回答を印刷しますが、正解を示すアスタリスクは印刷しません。
- 次に、改行とを印刷します
"answer: "。ユーザーの入力を待ちます。ユーザー入力は常に回答に対応します。 - 正解(アスタリスクが付いたもの)がユーザーが入力したものと同じ場合、output
"correct!"。それ以外の場合は、output"incorrect! the answer was " + correct_letter。 - 各質問を空白行で区切り、質問がなくなるまで前の出力手順を繰り返します。
- 出力(概要フェーズ)
- 印刷
"overview: "してから改行します。 - 印刷
"{number of correct answers} correct, {incorrect answers} incorrect ({percent correct, rounded to the nearest whole number}%)"(もちろん、中括弧で囲まれた語句をそれぞれの値に置き換えます)。次に、スペースを空けるために空白行を印刷します。 - さて、間違った質問ごとに、質問(その答えではなく)を印刷してから、新しい行
"you chose " + answer_you_chose、別の行に印刷し"the answer was " + correct_answerます。間違った回答の概要を空白行で区切ります。
- 印刷
- 文字通りに物事を解釈して不正を減らすために、ここで同じ出力とテスト受験段階で同じ入力が与えられた場合、プログラムはサンプル出力とまったく同じものを出力する必要があります。
これはcode-golfです。最短のコードが勝ちます!(そして、A +(緑色のチェックマーク)を取得します!)

\d\.、\w:そして\*質問/回答の途中にあるトリッキーな状況を含めることを望みます。(例えば、現在、*y/*//s/^\*//