6. diel - Backtracking - Lúštič Sudoku – Úvod
V predchádzajúcom článku, Backtracking - Prerezávanie , sme sa zoznámili s technikou prerezávania.
V dnešnom tutoriále o rekurzívnych algoritmoch začneme programovať lúštič Sudoku. Po niekoľkých teoretických lekciách si konečne zakódujeme a postupne vytvoríme program, v ktorom využijeme silu backtrackingu spojeného s prerezávaním.
Poznamenajme vopred, že výsledný program nebude (okrem prerezávania) nijako optimalizovaný na výkon. Jeho účelom bude predovšetkým demonštrácia algoritmu. Bude nám stačiť, keď vyriešené Sudoku obdržíme do jednej sekundy. O prípadných vylepšeniach budeme diskutovať, až celé Sudoku naprogramujeme.
Trieda Sudoku
Celé Sudoku budeme implementovať ako triedu Sudoku
. Pozrime sa
najskôr stručne na to, čo bude trieda obsahovať.
Trieda bude mať dvoch dátových členov:
hraciPole
– dvojrozmerné pole znakov o veľkosti 9 x 9, reprezentujúce hracie pole,vyreseno
– premenná typubool
, indikujúca, či je Sudoku vyriešené.
hraciPole
bude súkromná, lebo nie je dôvod
vystavovať ju navonok. Premenná vyreseno
bude naopak verejná –
podľa jej hodnoty sa užívateľ dozvie, či bolo Sudoku vyriešené, resp. či
má vôbec riešenie.
Naša trieda bude mať tieto verejné metódy:
...koniec náhľadu článku...
Pokračuj ďalej
Minul si až sem a to je super! Veríme, že ti prvé lekcie ukázali niečo nového a užitočného.
Chceš v kurze pokračovať? Prejdi do prémiové sekcie.
Kúpiť tento kurz
Pred kúpou tohto článku je potrebné kúpiť predchádzajúci diel
Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš so zmluvnými podmienkami.
- Neobmedzený a trvalý prístup k jednotlivým lekciím.
- Kvalitné znalosti v oblasti IT.
- Zručnosti, ktoré ti pomôžu získať vysnívanú a dobre platenú prácu.
Popis článku
Požadovaný článok má nasledujúci obsah:
V tutoriále o rekurzívnych algoritmoch začneme programovať lúštič Sudoku, v ktorom aplikujeme poznatky z predchádzajúcich lekcií o backtrackingu.
Kredity získaš, keď podporíš našu sieť. To môžeš urobiť buď zaslaním symbolickej sumy na podporu prevádzky alebo pridaním obsahu na sieť.