36 lines
1.6 KiB
Markdown
36 lines
1.6 KiB
Markdown
[English](Description) | [Dansk](Description.da) | **Bahasa Melayu**
|
|
|
|
# Penerangan
|
|
|
|
Permainan ini mengikut tiga kuliah hari 25. Halaman ini menerangkan cara kod dibina.
|
|
|
|
## Peraturan permainan
|
|
|
|
- Tetingkap memaparkan peta kosong daripada `blank_states_img.gif`.
|
|
- Tajuk gesaan menunjukkan bilangan negeri yang dinamakan, contohnya `14/50 States Correct`.
|
|
- Jawapan dipadankan dengan negeri tanpa mengira huruf besar atau kecil atau ruang di sekelilingnya.
|
|
- Negeri yang betul ditulis pada peta di `x` dan `y` daripada `50_states.csv`; jawapan salah atau berulang ditanya semula.
|
|
- `exit` atau Cancel menamatkan permainan; negeri yang tidak dinamakan disimpan dalam `states_to_learn.csv`.
|
|
|
|
## Modul
|
|
|
|
| Modul | Tanggungjawab |
|
|
| --- | --- |
|
|
| `constants.py` | Semua pemalar: tajuk, nama fail, nama lajur, had |
|
|
| `states.py` | Peraturan: `State`, `find_state`, `get_missing_states`; tiada fail, tiada skrin |
|
|
| `storage.py` | Membaca `50_states.csv` dan menulis `states_to_learn.csv` dengan modul `csv` pustaka standard |
|
|
| `game.py` | Gelung meneka `play` dan `run_game` melalui protokol `GameScreen` |
|
|
| `turtle_screen.py` | Satu-satunya modul yang mengimport `turtle`: peta, gesaan, nama negeri, koordinat klik |
|
|
| `main.py` | Titik masuk yang menyambungkan bahagian-bahagian |
|
|
|
|
## Ujian, CI dan dokumentasi
|
|
|
|
- `python -m pytest` menjalankan ujian dengan skrin palsu, jadi tiada tetingkap dibuka.
|
|
- `.gitea/workflows/run-tests.yml` menjalankan ruff, mypy, yamllint dan pytest pada setiap push dan pull request.
|
|
- `doxygen Doxyfile` membina dokumentasi sumber ke dalam `docs/build/doxygen`.
|
|
|
|
```bash
|
|
python -m pytest
|
|
doxygen Doxyfile
|
|
```
|