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

67 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
- `1``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í.