notebookvb
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# DailyCalcudoku — technické poznámky
|
||||
|
||||
## Přehled skriptů
|
||||
|
||||
| Skript | Popis |
|
||||
|--------|-------|
|
||||
| `preskumaj_calcudoku.py` | Průzkumný — vytáhne `gameLevels` z JS kontextu stránky |
|
||||
| `stahni_calcudoku.py` | Stáhne data z webu a uloží do MySQL (celý rok najednou) |
|
||||
| `vykresli_calcudoku.py` | Generuje PDF z dat v MySQL (reportlab, vektorové) |
|
||||
|
||||
## Zdroj dat
|
||||
|
||||
Stránka: https://www.solitaire.org/daily-calcudoku/
|
||||
|
||||
Stejná architektura jako Kakuro/Str8ts — `game.php` načte `gameLevels` s daty pro celý rok (366 dní × 4 velikosti). Klíče `"MM-DD"`, bez roku. Data se nemění přes rok — stačí jednorázové stažení v lednu.
|
||||
|
||||
## Obtížnosti (velikosti mřížek)
|
||||
|
||||
| Klíč | Rozměr | Číslice |
|
||||
|------|--------|---------|
|
||||
| 4x4 | 4×4 | 1–4 |
|
||||
| 5x5 | 5×5 | 1–5 |
|
||||
| 6x6 | 6×6 | 1–6 |
|
||||
| 8x8 | 8×8 | 1–8 |
|
||||
|
||||
## Datová struktura `gameLevels`
|
||||
|
||||
Každý záznam je pole dvou stringů: `[cages, solution]`
|
||||
|
||||
### Cages (definice klecí)
|
||||
|
||||
Klece oddělené `|`, každá ve formátu `target,operator,cells`:
|
||||
```
|
||||
3,*,a1b1|8,+,a2b2a3|2,/,c4d4
|
||||
```
|
||||
- `target` = cílová hodnota
|
||||
- `operator` = `+`, `-`, `*`, `/`
|
||||
- `cells` = seznam buněk (sloupec=písmeno a–h, řádek=číslo 1–8)
|
||||
|
||||
### Solution (řešení)
|
||||
|
||||
Flat string číslic, řádek po řádku:
|
||||
```
|
||||
1342213442133421 (4×4 = 16 znaků)
|
||||
```
|
||||
|
||||
## MySQL tabulka `puzzle.puzzles`
|
||||
|
||||
Sdílená tabulka s ostatními puzzle. Pro Calcudoku:
|
||||
- `game_type` = `'calcudoku'`
|
||||
- `difficulty` = `'4x4'` / `'5x5'` / `'6x6'` / `'8x8'`
|
||||
- `puzzle` = cage definice (cages string)
|
||||
- `solution` = flat string řešení
|
||||
- `extra` = `{"grid_size": 4}` / `5` / `6` / `8`
|
||||
- `source` = `'solitaire.org'`
|
||||
|
||||
Stav: celý rok 2026 naplněn (1460 řádků = 365 dní × 4 velikosti).
|
||||
Reference in New Issue
Block a user