JetBrains-Research / JetBrains-Research/Python-Solution-Preference

[018] Quiz Application (MVP)

オープン
#18 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
言語のデータがありません
スター
2
フォーク
0
PR マージ指標
30日以内にマージされた PR はありません

説明

## Overview
Quiz game: select a category, answer up to 10 questions, earn achievements. Session-based only (no accounts). Questions loaded from `assets/questions.csv`.

Build this as a Python backend service with no UI; expose the functionality below through an HTTP API.

## Category Selection
- Return all unique categories from CSV plus a "Surprise Me!" option
- Selecting a category → randomly sample up to 10 questions (without replacement) from that category
- "Surprise Me!" → randomly pick one category, report which category was selected, then sample questions from it
- If category has <10 questions: return warning "Not enough questions in this category for all accomplishments" with the option to proceed anyway
- Note: Only Geography and Science have ≥10 questions; all categories must still be returned

## Gameplay
- Each question includes question text, 4 options (A/B/C/D), and progress "Question X of Y"
- On answer submission: return "Correct!" or "Incorrect" feedback, the correct answer, and the explanation
- The game advances to the next question; after the final question, results are available
- Track consecutive correct answers: increment on correct, reset to 0 on incorrect
- Track maximum consecutive correct achieved during the game

## Results
- Report score as "X/Y Correct (Z%)" and elapsed time in seconds
- Award achievements based on game performance:
- **Perfect Round**: All questions answered correctly (only possible with 10 questions)
- **Hot Streak**: Max consecutive correct ≥ 5
- **Triple Win**: Max consecutive correct ≥ 3
- Achievements can overlap (e.g., 5+ consecutive earns both Hot Streak and Triple Win)
- Return earned achievements, or "No achievements this round" if none
- Play Again → new game with new random questions from same category
- New Category → new game from a newly selected category

## CSV Format
Required columns: `question`, `option_a`, `option_b`, `option_c`, `option_d`, `correct_option` (A/B/C/D), `explanation`, `category`

---
**Provided starting files:** see [`018-quiz/assets/`](https://github.com/JetBrains-Research/Python-Solution-Preference/tree/main/018-quiz/assets) — these were in the agent's working directory when it solved the task.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

Start by inspecting the provided files in 018-quiz/assets/ and the questions.csv structure, including its required columns and available categories. Define the HTTP API around category selection, gameplay, results, and new games, then verify that the service supports the specified sampling, scoring, streak, timing, warning, and achievement behavior.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
api, backend
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。