Files
ordinaceprojekt/SběrDatRůzné/DailyKakuro/NOTES.md
T
Vladimir Buzalka c9903646f1 notebookvb
2026-05-08 13:30:47 +02:00

2.3 KiB
Raw Blame History

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:

  1. Ke každému řádku přidá 0 na začátek
  2. Přidá se nulový řádek na začátek (horní okraj)

Význam číslic:

  • 0 = černá/nápovědní buňka
  • 19 = čí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í.