IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

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á typu bool, indikujúca, či je Sudoku vyriešené.
Premenná 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

Vedomosti v hodnote stoviek tisíc získaš za pár korún

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

Kúpiť všetky aktuálne dostupné lekcie s funkciou odovzdávanie úloh iba za 200 kreditov
Aktuálny stav konta 0 kreditov
Kúpou tohoto balíčku získaš prístup ku všetkým 10 článkom (10 lekcií) tohoto kurzu.

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.

Čo od nás v ďalších lekciách dostaneš?
  • 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ť.

Článok pre vás napísal Jan Hnilica
Avatar
Autor se věnuje hlavně programování v C a v Pythonu
Aktivity