# 02 クイズゲーム(Standard版)

  run.bat                 これを実行します
  src\QUIZPLAY_STD.cob    Standard 版。約560行
  data\questions.csv      問題
  data\rankings.csv       成績

COBOL に関する問題が出題されます。4択で、選択肢は毎回シャッフルされます。
終わると点数が出て、上位5件のランキングが表示されます。

# 遊びかた

  1. run.bat を実行します
  2. 名前を入れます
  3. 出題された問題に、選択肢の番号で答えます
  4. 全問終わると点数とランキングが出ます

# 読みどころ

・ORGANIZATION IS LINE SEQUENTIAL WITH CSV
    CSV を項目ごとに読み込む、SIT COBOL 独自の書き方です。
    区切りの解釈を処理系が行うので、読んだ行を UNSTRING で
    自分で分ける必要がありません。

      SELECT Q-FILE ASSIGN TO '../data/questions.csv'
        ORGANIZATION IS LINE SEQUENTIAL WITH CSV.

・選択肢のシャッフル
    正解と不正解を並べた表を、乱数で入れ替えてから表示します。
    毎回同じ位置に正解が来ないようにするための処理です。

・成績の追記と並べ替え
    成績は OPEN EXTEND で rankings.csv の末尾に足します。
    表示のときは全件を表に読み込み、テーブルの SORT で並べ替えて
    上位5件を出します。ファイルは並べ替えていません。

・問題文の改行
    questions.csv の中の \n を、表示のときに改行として扱っています。
    CSV に複数行の文章を入れるときの手です。

# ★ data\rankings.csv は遊ぶたびに増えます

配布時は5件入っています。遊ぶと、その成績が末尾に足されていきます。
元に戻したいときは、次の5行だけを残してください。

  太郎,7,10,20260410
  花子,85,100,20260410
  次郎,65,100,20260411
  三郎,90,100,20260411
  四郎,72,100,20260412

# 問題を増やす

data\questions.csv に行を足せば、そのまま出題されます。
1行が1問で、順番は次のとおりです。

  id, question, coding, correct, wrong1, wrong2, wrong3, explanation

  coding      プログラムの断片を見せたいときに書きます。無くてもよいです
  correct     正解の選択肢
  wrong1〜3   不正解の選択肢
  explanation 答え合わせのあとに出る解説

# Pro 版との違い

同じクイズを索引ファイルから引くものが 03_quiz-game-pro です。
問題の持ち方だけが違うので、読み比べると
CSV と索引ファイルの書き方の差が分かります。
