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

1.7 KiB
Raw Blame History

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 14
5x5 5×5 15
6x6 6×6 16
8x8 8×8 18

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 ah, řádek=číslo 18)

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).