# 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).