Lekce 6 - Backtracking - Luštič Sudoku - Úvod
V předchozí lekci, Backtracking - Prořezávání, jsme se seznámili s technikou prořezávání.
V dnešním tutoriálu o rekurzivních algoritmech začneme programovat luštič Sudoku. Po několika teoretických lekcích si konečně zakódujeme a postupně vytvoříme program, ve kterém využijeme sílu backtrackingu spojeného s prořezáváním.
Poznamenejme předem, že výsledný program nebude (kromě prořezávání) nijak optimalizovaný na výkon. Jeho účelem bude především demonstrace algoritmu. Bude nám stačit, když vyřešené Sudoku obdržíme do jedné vteřiny. O případných vylepšeních budeme diskutovat, až celé Sudoku naprogramujeme.
Třída Sudoku
Celé Sudoku budeme implementovat jako třídu Sudoku
.
Podívejme se nejdříve stručně na to, co bude třída obsahovat.
Třída bude mít dva datové členy:
hraciPole
– dvojrozměrné pole znaků o velikosti 9 x 9, reprezentující hrací pole,vyreseno
– proměnná typubool
, indikující, zda je Sudoku vyřešené.
Proměnná hraciPole
bude soukromá, neboť není důvod
vystavovat ji navenek. Proměnná vyreseno
bude naopak veřejná
– podle její hodnoty se uživatel dozví, zda bylo Sudoku vyřešeno, resp.
zda má vůbec řešení.
Naše třída bude mít tyto veřejné metody:
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Před koupí tohoto článku je třeba koupit předchozí díl
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
V tutoriálu o rekurzivních algoritmech začneme programovat luštič Sudoku, ve kterém aplikujeme poznatky z předchozích lekcí o backtrackingu.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.