2.3 KiB
DailyKakuro — technické poznámky
Přehled skriptů
| Skript | Popis |
|---|---|
preskumaj_kakuro.py |
Průzkumný — vytáhne gameLevels z JS kontextu stránky |
stahni_kakuro.py |
Stáhne data z webu a uloží do MySQL (celý rok najednou) |
vykresli_kakuro.py |
Generuje PDF z dat v MySQL (reportlab, vektorové) |
Zdroj dat
Stránka: https://www.solitaire.org/daily-kakuro/
Stejná architektura jako Str8ts — game.php načte gameLevels s daty pro celý rok (366 dní × 4 obtížnosti). Klíče "MM-DD", bez roku. Data se nemění přes rok — stačí jednorázové stažení v lednu.
Obtížnosti a velikosti mřížek
| Obtížnost | Rozměr mřížky |
|---|---|
| easy | 10×10 (data 9×9 + prepend) |
| medium | 10×10 |
| hard | 12×12 (data 11×11 + prepend) |
| expert | 12×12 |
Datová struktura gameLevels
Každý záznam je jeden string — řádky oddělené čárkou:
"098400970,986230849,850049095,613007810,..."
Při zpracování se:
- Ke každému řádku přidá
0na začátek - Přidá se nulový řádek na začátek (horní okraj)
Význam číslic:
0= černá/nápovědní buňka1–9= číslo řešení
Součty se neukládají — vypočítají se z řešení: sečtou se čísla ve směru doprava/dolů až po další nulu.
Data obsahují rovnou řešení, ne zadání. Zadání = prázdné bílé buňky + součty v černých.
MySQL tabulka puzzle.puzzles
Sdílená tabulka se Str8ts. Pro Kakuro:
game_type='kakuro'puzzle= surový string (řešení + struktura)solution= stejný string (data jsou řešení)extra={"grid_size": 10}nebo{"grid_size": 12}source='solitaire.org'
Stav: celý rok 2026 naplněn (1460 řádků = 365 dní × 4 obtížnosti).
Generování PDF (vykresli_kakuro.py)
- Knihovna: reportlab — vektorová grafika
- Nápovědní buňky (černé): tmavé pozadí + diagonála + součty (bílý text)
- Součet doprava → horní pravý trojúhelník
- Součet dolů → dolní levý trojúhelník
- Font: ArialBold (podpora české diakritiky)
Bonus: Game.combos
Na stránce je i tabulka Game.combos — možné kombinace číslic pro každý součet a počet buněk. Např. součet 17 ze 2 buněk = "8+9". Dá se použít jako nápověda pro řešení.