「繰り返し遊べるクイズを作る」は、Python の基礎を学び、ターミナルで遊べるアプリを作りたい方のための実践プロジェクトです。ローカルの JSON 問題集から問題を選び、選択肢の位置が変わっても答えを正しく判定し、その回で間違えた問題だけを独立した練習にするロジックを作ります。
2 つのガイド付きラボで、既知の問題への回答から回答記録の保存と再利用へ進みます。1 つの独立したチャレンジでは、同じ仕組みを新しい自然クイズに適用します。各単元には独立して準備されたファイルがあります。
学習内容
- 元の問題集を変更せず、重複しない有限個の問題を選び、選択肢オブジェクト全体を並べ替える。
- 表示された回答番号を安定した選択肢 ID に対応させ、回答と問題の関係を保つ。
- 無効な入力では再入力を求め、終了時に未回答の問題を誤答にしない。
- 送信済みの問題 ID と選択肢 ID の組を UTF-8 の JSON ファイルに保存する。
- 回答済みの誤答だけを次の練習に選び、誤答がない場合も扱い、元の問題集と記録を保つ。
このコースの対象者
慣れたデータ構造と関数を組み合わせて、対話型プログラムを作りたい Python 学習者を対象としています。
前提知識: Python の関数、リスト、辞書、条件分岐、ループ、および基本的なターミナル操作とディレクトリ移動が必要です。JSON、ファイル操作、ランダム選択、入力検証、用意された関数引数は、使用前にガイド付きラボで説明します。
学習環境: ブラウザの WebIDE にエディター、ターミナル、Python、問題集、アプリの骨組みが用意されています。logic.py の 5 つの関数を実装し、提供された表示エンジン、コマンドラインプログラム、問題集を保持します。問題、画面ラベル、プログラム出力は英語です。
よくある質問
ソフトウェアのインストールやクイズサービスへの登録は必要ですか?
ローカルへのインストールや外部アカウントは不要です。準備済みの環境でローカルファイルと Python 標準ライブラリを使います。
アプリ全体を最初から書くのですか?
いいえ。問題選択、選択肢の移動、入力処理、回答保存、誤答の抽出を実装します。提供されたエンジンが問題とフィードバックを表示し、コマンドラインプログラムがファイルを読み、最終得点を表示します。
チャレンジでは何が変わりますか?
学習した関数を別の自然問題集で再利用します。異なる問題に同じ文言や選択肢 ID があっても、問題と選択肢の識別に基づいて正誤を扱います。同じプログラムが元の問題集でも引き続き動く必要があります。
途中で終了したり、全問正解したりしてもよいですか?
はい。回答前に q を入力すると、その問題は記録されません。全問正解の場合、練習は空になります。新しい保存先を使うことで以前の記録を保持します。

