Python์ผ๋ก ๋ง๋ ์ฝ์ ๊ธฐ๋ฐ ํด์ฆ ๊ฒ์์ ๋๋ค. ํฐ๋ฏธ๋์์ ๋ฌธ์ ๋ฅผ ํ๊ณ , ์ ๋ฌธ์ ๋ฅผ ์ถ๊ฐํ๊ณ , ์ต๊ณ ์ ์๋ฅผ ์ ์ฅํ ์ ์๋ ๊ฐ๋จํ ํ์ต์ฉ ํ๋ก๊ทธ๋จ์ ๋๋ค.
๊ฐ๋ฐ ์ธ์ด: Python 3
์ฃผ์ ๊ธฐ๋ฅ: ํด์ฆ ํ๊ธฐ, ํด์ฆ ๋ฑ๋ก, ๋ชฉ๋ก ์กฐํ, ์ต๊ณ ์ ์ ๊ธฐ๋ก, JSON ํ์ผ ์ ์ฅ
ํน์ง: ํด๋์ค ๋ถ๋ฆฌ, ์ซ์ ์ ๋ ฅ ๊ฒ์ฆ, ํ์ผ ์ ์ฅ ์ค ์์ธ ์ฒ๋ฆฌ
์ฃผ์ : ๋ฆฌ๋ ์ค ๊ธฐ๋ณธ ๋ช ๋ น์ด, Docker, Git
๊ธฐ๋ณธ ๋ฌธ์ ๋ ํ์ต ์ด๋ฐ์ ์์ฃผ ์ ํ๋ ๋ช ๋ น์ด ์์ฃผ๋ก ๊ตฌ์ฑํ์ต๋๋ค. ํฐ๋ฏธ๋ ์ฌ์ฉ, ๋ฒ์ ๊ด๋ฆฌ, ์ปจํ ์ด๋ ๊ธฐ์ด ๋ด์ฉ์ ๊ฐ๋ณ๊ฒ ๋ณต์ตํ๋ ๋ชฉ์ ์ ๋ง์ท์ต๋๋ค.
ํ๋ก์ ํธ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์์ ์๋ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด ๋ฉ๋๋ค. ๋ณ๋์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ์ํ์ง ์์ต๋๋ค.
python main.pyํด์ฆ ํ๊ธฐ: ์ ์ฅ๋ ๋ฌธ์ ๋ฅผ ์์๋๋ก ์ถ์ ํ๊ณ , ์ ์๋ฅผ ๊ณ์ฐํฉ๋๋ค.
ํด์ฆ ๋ฑ๋ก: ๋ฌธ์ , ์ ํ์ง 4๊ฐ, ์ ๋ต ๋ฒํธ๋ฅผ ์ ๋ ฅํด ์ ๋ฌธ์ ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
๋ชฉ๋ก ์กฐํ: ํ์ฌ ๋ฑ๋ก๋ ๋ชจ๋ ํด์ฆ์ ์ ๋ชฉ์ ๋ฒํธ์ ํจ๊ป ์ถ๋ ฅํฉ๋๋ค.
์ต๊ณ ์ ์ ํ์ธ: ์ญ๋ ๊ฐ์ฅ ๋ง์ด ๋งํ ์ ๋ต ๊ฐ์๋ฅผ ํ์ธํฉ๋๋ค.
๋ฐ์ดํฐ ์ ์ง: state.json ํ์ผ์ ํตํด ๋ฌธ์ ๋ชฉ๋ก๊ณผ ์ต๊ณ ์ ์๋ฅผ ์ ์ฅํฉ๋๋ค.
main.py: ํ๋ก๊ทธ๋จ ์คํ ํ์ผ์ ๋๋ค. ๋ฉ๋ด ์ถ๋ ฅ, ํด์ฆ ์งํ, ์ ์ฅ/๋ถ๋ฌ์ค๊ธฐ๋ฅผ ๋ด๋นํฉ๋๋ค.
Quiz ํด๋์ค: ๋ฌธ์ , ๋ณด๊ธฐ, ์ ๋ต ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๊ณ ์ ๋ต ์ฌ๋ถ๋ฅผ ํ๋ณํฉ๋๋ค.
QuizGame ํด๋์ค: ํ์ผ ์ ์ถ๋ ฅ, ๋ฉ๋ด ๋ฃจํ, ์ ์ ๊ณ์ฐ ๋ฑ ์ ์ฒด ํ๋ฆ์ ๊ด๋ฆฌํฉ๋๋ค.
state.json: ํด์ฆ ๋ฐ์ดํฐ์ ์ต๊ณ ์ ์๊ฐ ์ ์ฅ๋๋ ํ์ผ์ ๋๋ค.
.gitignore: state.json, ์บ์ ํ์ผ ๋ฑ์ Git ์ถ์ ์์ ์ ์ธํฉ๋๋ค.
README.md: ํ๋ก์ ํธ ์์ธ ์ค๋ช ๋ฌธ์.
๋ฐ์ดํฐ๋ ์๋์ ๊ฐ์ JSON ๊ตฌ์กฐ๋ก ๊ด๋ฆฌ๋ฉ๋๋ค.
{ "quizzes": [ { "question": "๋ฌธ์ ๋ด์ฉ์ด ๋ค์ด๊ฐ๋๋ค.", "choices": ["๋ณด๊ธฐ1", "๋ณด๊ธฐ2", "๋ณด๊ธฐ3", "๋ณด๊ธฐ4"], "answer": 1 } ], "best_score": 5 } state.json ์ฝ๊ธฐ/์ฐ๊ธฐ ํ๋ฆ
- Load: ํ๋ก๊ทธ๋จ ์์ ์ ํ์ผ์ด ์์ผ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ , ์์ผ๋ฉด ๊ธฐ๋ณธ ๋ฌธ์ ๋ชฉ๋ก์ ์ฌ์ฉํฉ๋๋ค.
- Save: ๋ฌธ์ ์ถ๊ฐ ๋๋ ์ต๊ณ ์ ์ ๊ฐฑ์ ์ ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํ์ผ์ ์ ์ฅํฉ๋๋ค.
์ซ์ ์ ๋ ฅ: ๊ณต๋ฐฑ ์ ๋ ฅ, ๋ฌธ์ ์ ๋ ฅ, ๋ฒ์๋ฅผ ๋ฒ์ด๋ ์ซ์๋ฅผ ๋ค์ ์ ๋ ฅํ๋๋ก ์ฒ๋ฆฌํฉ๋๋ค.
๋น์ ์ ์ข
๋ฃ: Ctrl+C ๋๋ EOFError ๋ฐ์ ์ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ค ์ข
๋ฃํฉ๋๋ค.
ํ์ผ ๋ฌด๊ฒฐ์ฑ: state.json ํ์ผ์ด ์์ผ๋ฉด ๊ธฐ๋ณธ ํด์ฆ๋ก ์์ํ๊ณ , ํ์ผ์ด ์์๋ ๊ฒฝ์ฐ ์ด๊ธฐํ ์ฌ๋ถ๋ฅผ ๋ค์ ๋ฌป์ต๋๋ค.