notebookvb

This commit is contained in:
Vladimir Buzalka
2026-05-08 22:06:57 +02:00
parent c9903646f1
commit c4c0d1d435
14 changed files with 1666 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
# DailySuguru — technické poznámky
## Přehled skriptů
| Skript | Popis |
|--------|-------|
| `preskumaj_suguru.py` | Průzkumný — vytáhne `gameLevels` z JS kontextu stránky |
| `stahni_suguru.py` | Stáhne data z webu a uloží do MySQL (celý rok najednou) |
| `vykresli_suguru.py` | Generuje PDF z dat v MySQL (reportlab, vektorové) |
## Zdroj dat
Stránka: https://www.solitaire.org/daily-suguru/
Stejná architektura jako ostatní puzzle — `game.php` načte `gameLevels` s daty pro celý rok (366 dní × 3 velikosti). Klíče `"MM-DD"`, bez roku.
## Obtížnosti (velikosti mřížek)
| Klíč | Rozměr |
|------|--------|
| 6x6 | 6×6 |
| 8x8 | 8×8 |
| 10x10 | 10×10 |
## Datová struktura `gameLevels`
Každý záznam je objekt `{colors, clues, solution}`:
- `colors` = skupiny buněk (písmena AZ), flat string řádek po řádku
- `clues` = nápovědy, tečka = prázdná buňka
- `solution` = řešení, flat string číslic
Pravidla Suguru: každá skupina velikosti N obsahuje čísla 1N, žádné dvě sousední buňky (včetně diagonálně) nesmí mít stejné číslo.
## MySQL tabulka `puzzle.puzzles`
Sdílená tabulka s ostatními puzzle. Pro Suguru:
- `game_type` = `'suguru'`
- `difficulty` = `'6x6'` / `'8x8'` / `'10x10'`
- `puzzle` = `colors|clues` (dva stringy spojené `|`)
- `solution` = flat string řešení
- `extra` = `{"grid_size": 6}` / `8` / `10`
- `source` = `'solitaire.org'`
Stav: celý rok 2026 naplněn (1095 řádků = 365 dní × 3 velikosti).