notebookvb
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# DailySudoku — technické poznámky
|
||||
|
||||
## Přehled skriptů
|
||||
|
||||
| Skript | Popis |
|
||||
|--------|-------|
|
||||
| `preskumaj_sudoku.py` | Průzkumný — vytáhne `gameLevels` z JS kontextu stránky |
|
||||
| `stahni_sudoku.py` | Stáhne data z webu a uloží do MySQL (celý rok najednou) |
|
||||
| `vykresli_sudoku.py` | Generuje PDF z dat v MySQL (reportlab, vektorové) |
|
||||
|
||||
## Zdroj dat
|
||||
|
||||
Stránka: https://www.solitaire.org/daily-sudoku/
|
||||
|
||||
Stejná architektura jako ostatní puzzle — `game.php` načte `gameLevels` s daty pro celý rok (366 dní × 4 obtížnosti). Klíče `"MM-DD"`, bez roku.
|
||||
|
||||
## Obtížnosti
|
||||
|
||||
| Obtížnost | Mřížka |
|
||||
|-----------|--------|
|
||||
| easy | 9×9 |
|
||||
| medium | 9×9 |
|
||||
| hard | 9×9 |
|
||||
| expert | 9×9 |
|
||||
|
||||
## Datová struktura `gameLevels`
|
||||
|
||||
Každý záznam je objekt `{board, solution}`:
|
||||
```json
|
||||
{
|
||||
"board": "2.78..3.6..5......39.614.7...",
|
||||
"solution": "247895316165723984398614275..."
|
||||
}
|
||||
```
|
||||
|
||||
- `board` = zadání, 81 znaků (9×9), tečka = prázdná buňka
|
||||
- `solution` = řešení, 81 znaků číslic 1–9
|
||||
|
||||
## MySQL tabulka `puzzle.puzzles`
|
||||
|
||||
Sdílená tabulka s ostatními puzzle. Pro Sudoku:
|
||||
- `game_type` = `'sudoku'`
|
||||
- `difficulty` = `'easy'` / `'medium'` / `'hard'` / `'expert'`
|
||||
- `puzzle` = board string (zadání s tečkami)
|
||||
- `solution` = solution string (řešení)
|
||||
- `extra` = `{"grid_size": 9}`
|
||||
- `source` = `'solitaire.org'`
|
||||
|
||||
Stav: celý rok 2026 naplněn (1460 řádků = 365 dní × 4 obtížnosti).
|
||||
Reference in New Issue
Block a user