Add screenshots, finish README, add wiki in en, da and ms, re-review MIL-004 (MIL-004)
Task: MIL-004#1 Task: MIL-004#2 Task: MIL-004#3 Task: MIL-004#4
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
[English](Description) | **Dansk** | [Bahasa Melayu](Description.ms)
|
||||
|
||||
# Beskrivelse
|
||||
|
||||
Spillet følger de tre lektioner fra dag 25. Denne side forklarer, hvordan koden er bygget.
|
||||
|
||||
## Spilregler
|
||||
|
||||
- Vinduet viser det blanke kort fra `blank_states_img.gif`.
|
||||
- Promptens titel viser, hvor mange delstater der er navngivet, for eksempel `14/50 States Correct`.
|
||||
- Et svar matches med en delstat uden hensyn til store og små bogstaver eller mellemrum omkring.
|
||||
- En rigtig delstat skrives på kortet ved sin `x` og `y` fra `50_states.csv`; et forkert eller gentaget svar spørger igen.
|
||||
- `exit` eller Annuller afslutter spillet; de delstater, der ikke er navngivet, gemmes i `states_to_learn.csv`.
|
||||
|
||||
## Moduler
|
||||
|
||||
| Modul | Ansvar |
|
||||
| --- | --- |
|
||||
| `constants.py` | Alle konstanter: titler, filnavne, kolonnenavne, grænser |
|
||||
| `states.py` | Reglerne: `State`, `find_state`, `get_missing_states`; ingen filer, ingen skærm |
|
||||
| `storage.py` | Læser `50_states.csv` og skriver `states_to_learn.csv` med standardbibliotekets `csv`-modul |
|
||||
| `game.py` | Gætteløkken `play` og `run_game` via en `GameScreen`-protokol |
|
||||
| `turtle_screen.py` | Det eneste modul, der importerer `turtle`: kort, prompt, delstatsnavne, klikkoordinater |
|
||||
| `main.py` | Indgangspunkt, der forbinder delene |
|
||||
|
||||
## Tests, CI og dokumentation
|
||||
|
||||
- `python -m pytest` kører testene med en falsk skærm, så intet vindue åbnes.
|
||||
- `.gitea/workflows/run-tests.yml` kører ruff, mypy, yamllint og pytest ved hvert push og hver pull request.
|
||||
- `doxygen Doxyfile` bygger kildedokumentationen i `docs/build/doxygen`.
|
||||
|
||||
```bash
|
||||
python -m pytest
|
||||
doxygen Doxyfile
|
||||
```
|
||||
@@ -0,0 +1,35 @@
|
||||
**English** | [Dansk](Description.da) | [Bahasa Melayu](Description.ms)
|
||||
|
||||
# Description
|
||||
|
||||
The game follows the three lectures of day 25. This page explains how the code is built.
|
||||
|
||||
## Game rules
|
||||
|
||||
- The window shows the blank map from `blank_states_img.gif`.
|
||||
- The prompt title shows how many states are named, for example `14/50 States Correct`.
|
||||
- An answer is matched to a state without regard to case or surrounding spaces.
|
||||
- A correct state is written on the map at its `x` and `y` from `50_states.csv`; a wrong or repeated answer asks again.
|
||||
- `exit` or Cancel ends the game; the states not named are saved to `states_to_learn.csv`.
|
||||
|
||||
## Modules
|
||||
|
||||
| Module | Responsibility |
|
||||
| --- | --- |
|
||||
| `constants.py` | Every constant: titles, file names, column names, limits |
|
||||
| `states.py` | The rules: `State`, `find_state`, `get_missing_states`; no files, no screen |
|
||||
| `storage.py` | Reads `50_states.csv` and writes `states_to_learn.csv` with the standard library `csv` module |
|
||||
| `game.py` | The guess loop `play` and `run_game`, working through a `GameScreen` protocol |
|
||||
| `turtle_screen.py` | The only module that imports `turtle`: map, prompt, state names, click coordinates |
|
||||
| `main.py` | Entry point that connects the parts |
|
||||
|
||||
## Tests, CI and documentation
|
||||
|
||||
- `python -m pytest` runs the tests with a fake screen, so no window opens.
|
||||
- `.gitea/workflows/run-tests.yml` runs ruff, mypy, yamllint and pytest on every push and pull request.
|
||||
- `doxygen Doxyfile` builds the source documentation into `docs/build/doxygen`.
|
||||
|
||||
```bash
|
||||
python -m pytest
|
||||
doxygen Doxyfile
|
||||
```
|
||||
@@ -0,0 +1,35 @@
|
||||
[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
|
||||
```
|
||||
@@ -0,0 +1,25 @@
|
||||
[English](Home) | **Dansk** | [Bahasa Melayu](Home.ms)
|
||||
|
||||
# U.S. States Game
|
||||
|
||||
Et quizspil fra Udemys *100 Days of Code* (dag 25): navngiv de 50 delstater på et blankt kort over USA. Hvert rigtigt gæt vises på kortet; når du stopper, gemmes de delstater, du missede, i `states_to_learn.csv`.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Kort fortalt
|
||||
|
||||
- Python 3.13 eller nyere, ingen runtime-afhængigheder
|
||||
- Tests med `pytest`, ingen skærm nødvendig
|
||||
- Kildedokumentation med Doxygen
|
||||
- Wiki på engelsk, dansk og bahasa malaysia
|
||||
|
||||
## Sider
|
||||
|
||||
| Page | |
|
||||
| --- | --- |
|
||||
| [Installation](Install.da) | Sæt projektet op på Windows, Linux Debian eller MacOS og kør det |
|
||||
| [Beskrivelse](Description.da) | Hvordan spillet og koden virker: regler, moduler, tests, CI og kildedokumentation |
|
||||
|
||||
[Repository](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-us-states-game)
|
||||
@@ -0,0 +1,25 @@
|
||||
**English** | [Dansk](Home.da) | [Bahasa Melayu](Home.ms)
|
||||
|
||||
# U.S. States Game
|
||||
|
||||
A quiz game from Udemy's *100 Days of Code* (day 25): name the 50 states on a blank map of the United States. Every correct guess appears on the map; when you leave, the states you missed are saved to `states_to_learn.csv`.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## At a glance
|
||||
|
||||
- Python 3.13 or newer, no runtime dependencies
|
||||
- Tests with `pytest`, no display needed
|
||||
- Source documentation with Doxygen
|
||||
- Wiki in English, Danish and Bahasa Malaysia
|
||||
|
||||
## Pages
|
||||
|
||||
| Page | |
|
||||
| --- | --- |
|
||||
| [Install](Install) | Set the project up on Windows, Linux Debian or MacOS and run it |
|
||||
| [Description](Description) | How the game and the code work: rules, modules, tests, CI and source documentation |
|
||||
|
||||
[Repository](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-us-states-game)
|
||||
@@ -0,0 +1,25 @@
|
||||
[English](Home) | [Dansk](Home.da) | **Bahasa Melayu**
|
||||
|
||||
# U.S. States Game
|
||||
|
||||
Permainan kuiz daripada *100 Days of Code* Udemy (hari 25): namakan 50 negeri di peta kosong Amerika Syarikat. Setiap jawapan yang betul dipaparkan pada peta; apabila anda berhenti, negeri yang terlepas disimpan dalam `states_to_learn.csv`.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Ringkasnya
|
||||
|
||||
- Python 3.13 atau lebih baharu, tiada kebergantungan masa jalan
|
||||
- Ujian dengan `pytest`, tiada paparan diperlukan
|
||||
- Dokumentasi sumber dengan Doxygen
|
||||
- Wiki dalam bahasa Inggeris, Denmark dan Bahasa Melayu
|
||||
|
||||
## Halaman
|
||||
|
||||
| Page | |
|
||||
| --- | --- |
|
||||
| [Pemasangan](Install.ms) | Sediakan projek pada Windows, Linux Debian atau MacOS dan jalankannya |
|
||||
| [Penerangan](Description.ms) | Cara permainan dan kod berfungsi: peraturan, modul, ujian, CI dan dokumentasi sumber |
|
||||
|
||||
[Repositori](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-us-states-game)
|
||||
@@ -0,0 +1,63 @@
|
||||
[English](Install) | **Dansk** | [Bahasa Melayu](Install.ms)
|
||||
|
||||
# Installation
|
||||
|
||||
Opret et lokalt virtuelt miljø med navnet `.venv`, opgradér `pip` og installér projektet med testværktøjet.
|
||||
|
||||
## Krav
|
||||
|
||||
- Python 3.13 eller nyere, med `tkinter` (Turtle kræver det)
|
||||
- `git`
|
||||
- Valgfrit: Doxygen til at bygge kildedokumentationen
|
||||
|
||||
## Windows PowerShell
|
||||
|
||||
```powershell
|
||||
git clone https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-us-states-game.git
|
||||
cd 025-us-states-game
|
||||
python -m venv .venv
|
||||
.\.venv\Scripts\Activate.ps1
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
## Linux Debian
|
||||
|
||||
```bash
|
||||
sudo apt install python3 python3-venv python3-tk git
|
||||
git clone https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-us-states-game.git
|
||||
cd 025-us-states-game
|
||||
python3 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
## MacOS
|
||||
|
||||
```bash
|
||||
git clone https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-us-states-game.git
|
||||
cd 025-us-states-game
|
||||
python3 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
## Kør
|
||||
|
||||
```bash
|
||||
python -m us_states_game
|
||||
```
|
||||
|
||||
Skriv et delstatsnavn i prompten; store og små bogstaver er ligegyldige. Skriv `exit` (eller tryk Annuller) for at stoppe. De delstater, du ikke navngav, skrives til `states_to_learn.csv` i den aktuelle mappe. Tilføj `--show-coordinates` for at udskrive koordinaterne for museklik.
|
||||
|
||||

|
||||
|
||||
## Kør testene
|
||||
|
||||
```bash
|
||||
python -m pytest
|
||||
```
|
||||
|
||||
Testene kræver ingen skærm.
|
||||
@@ -0,0 +1,63 @@
|
||||
**English** | [Dansk](Install.da) | [Bahasa Melayu](Install.ms)
|
||||
|
||||
# Install
|
||||
|
||||
Create a local virtual environment named `.venv`, upgrade `pip` and install the project with its test tool.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Python 3.13 or newer, with `tkinter` (Turtle needs it)
|
||||
- `git`
|
||||
- Optional: Doxygen to build the source documentation
|
||||
|
||||
## Windows PowerShell
|
||||
|
||||
```powershell
|
||||
git clone https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-us-states-game.git
|
||||
cd 025-us-states-game
|
||||
python -m venv .venv
|
||||
.\.venv\Scripts\Activate.ps1
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
## Linux Debian
|
||||
|
||||
```bash
|
||||
sudo apt install python3 python3-venv python3-tk git
|
||||
git clone https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-us-states-game.git
|
||||
cd 025-us-states-game
|
||||
python3 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
## MacOS
|
||||
|
||||
```bash
|
||||
git clone https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-us-states-game.git
|
||||
cd 025-us-states-game
|
||||
python3 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
## Run
|
||||
|
||||
```bash
|
||||
python -m us_states_game
|
||||
```
|
||||
|
||||
Type a state name in the prompt; case does not matter. Type `exit` (or press Cancel) to quit. The states you did not name are written to `states_to_learn.csv` in the current folder. Add `--show-coordinates` to print the coordinates of mouse clicks.
|
||||
|
||||

|
||||
|
||||
## Run the tests
|
||||
|
||||
```bash
|
||||
python -m pytest
|
||||
```
|
||||
|
||||
The tests need no display.
|
||||
@@ -0,0 +1,63 @@
|
||||
[English](Install) | [Dansk](Install.da) | **Bahasa Melayu**
|
||||
|
||||
# Pemasangan
|
||||
|
||||
Cipta persekitaran maya tempatan bernama `.venv`, naik taraf `pip` dan pasang projek dengan alat ujiannya.
|
||||
|
||||
## Keperluan
|
||||
|
||||
- Python 3.13 atau lebih baharu, dengan `tkinter` (Turtle memerlukannya)
|
||||
- `git`
|
||||
- Pilihan: Doxygen untuk membina dokumentasi sumber
|
||||
|
||||
## Windows PowerShell
|
||||
|
||||
```powershell
|
||||
git clone https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-us-states-game.git
|
||||
cd 025-us-states-game
|
||||
python -m venv .venv
|
||||
.\.venv\Scripts\Activate.ps1
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
## Linux Debian
|
||||
|
||||
```bash
|
||||
sudo apt install python3 python3-venv python3-tk git
|
||||
git clone https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-us-states-game.git
|
||||
cd 025-us-states-game
|
||||
python3 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
## MacOS
|
||||
|
||||
```bash
|
||||
git clone https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-us-states-game.git
|
||||
cd 025-us-states-game
|
||||
python3 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
## Jalankan
|
||||
|
||||
```bash
|
||||
python -m us_states_game
|
||||
```
|
||||
|
||||
Taip nama negeri pada gesaan; huruf besar atau kecil tidak penting. Taip `exit` (atau tekan Cancel) untuk berhenti. Negeri yang tidak anda namakan ditulis ke `states_to_learn.csv` dalam folder semasa. Tambah `--show-coordinates` untuk mencetak koordinat klik tetikus.
|
||||
|
||||

|
||||
|
||||
## Jalankan ujian
|
||||
|
||||
```bash
|
||||
python -m pytest
|
||||
```
|
||||
|
||||
Ujian tidak memerlukan paparan.
|
||||
@@ -0,0 +1,19 @@
|
||||
**U.S. States Game**
|
||||
|
||||
**English**
|
||||
|
||||
- [Home](Home)
|
||||
- [Install](Install)
|
||||
- [Description](Description)
|
||||
|
||||
**Dansk**
|
||||
|
||||
- [Hjem](Home.da)
|
||||
- [Installation](Install.da)
|
||||
- [Beskrivelse](Description.da)
|
||||
|
||||
**Bahasa Melayu**
|
||||
|
||||
- [Utama](Home.ms)
|
||||
- [Pemasangan](Install.ms)
|
||||
- [Penerangan](Description.ms)
|
||||
Reference in New Issue
Block a user