sudoku pomucka - 1

Návod
Návod k použití
Sudoku se luští tak, že každý z jeho 9 řádků musí obsahovat všechna čísla od 1 do 9 a každé
pouze jednou. Totéž platí i o každém z jeho devíti sloupců a o každé z devíti mřížek o rozměru
3 x 3 políčka. Příklad vyluštěného Sudoku je níže:

4 2 7 5 3 9 6 8 1
5 1 8 6 7 2 3 4 9
3 6 9 8 1 4 5 2 7
9 8 6 7 2 5 1 3 4
1 3 5 4 6 8 7 9 2
7 4 2 1 9 3 8 6 5
8 7 3 9 4 1 2 5 6
2 9 1 3 5 6 4 7 8
6 5 4 2 8 7 9 1 3

Jak vidíme, skutečně každý řádek, každý sloupec i každá z devíti mřížek o rozměrech 3 x 3
políčka obsahují všechna čísla od 1 do 9.
Při luštění Sudoku je třeba mít přehled o všech ještě nevyplněných políčkách, která čísla již
obsahuje příslušný řádek či sloupec či mřížka a tudíž tato čísla nelze do daného políčka zapsat.
Tato činnost je dosti úmorná a kromě toho je zde nebezpečí omylu, který by dosavadní luštění
mohl znehodnotit. Proto je zde pomůcka (viz list Sudoku) pomocí tabulky T602, která tuto rutinní
a únavnou práci vykoná za luštitele. Tato pomůcka ukáže u kteréhokoli z ještě nevyplněných políček,
která čísla od 1 do 9 je možno do něho vpisovat, to znamená která čísla od 1 do 9 nejsou obsažena
v příslušném řádku, sloupci či mřížce.
Vysvětleme si tedy, jak s pomůckou pracovat. Na listu SUDOKU jsou dvě tabulky a to A1-I9 a
dále K1-S9. Další tabulky ignorujme, jsou pomocné a v průběhu luštění je nebudeme zatím používat.
Do tabulky A1-I9 přeneseme zadání. Na příklad toto:

5 3 6 1
1 8 9
6 9 4 5
2 1
3 6 9
2 9
3 9 5
2 4
6 4 8 7

Toto zadání přenese program i do tabulky K1-S9. V této tabulce bude v nevyplněných políčkách
nápověda, která čísla jsou v tom kterém políčku přípustná. Tato nápověda je ve tvaru desetimístného
čísla. V případě, že jsou přípustná všechna čísla od 1 do 9 bude toto číslo mít tvar 9876543210.
Pokud by na př. nebylo přípustné číslo 5, nápověda by měla tvat 9876043210, pokud by na příklad
nebyla přípustná čísla 9,6,2,1, pak by nápověda měla tvar 870543000, pokud by přípusné bylo
pouze číslo 3, pak by nápověda měla tvar 3000 atd. Obecně řečeno: nápověda obsahuje až 10 cifer.
Cifry s výjimkou nul udávají čísla, která jsou v tomto políčku přípustná. V prvé fázi nás zajímají
políčka, v nichž je přípustné pouze jedno číslo. Je-li to číslo 9, pak nápověda má tvar 9000000000.
je-li to 8, pak nápověda má tvar 800000000, při sedmičce 70000000 atd. Podívejme se, jak bude
nápověda vypadat pro naše zadání:

70040000 70040200 70000000 5 3 9800000200 6 870040200 1
70543000 1 8 76000200 70000000 6000200 70003200 70043200 9
70003000 6 9 870000210 70000010 4 5 870003200 870003200
9870540000 9870540000 9006500000 870043000 2 800503000 1 876043000 876043000
870540010 3 70500010 870040010 6 800500010 870000200 9 870540200
870540010 87054000 2 87004301 9 80050301 87000300 87604300 87654300
87000001 870000000 3 9 40010 6000210 870000200 5 876000200
2 9870500000 70500010 6003010 500010 6503010 4 876003010 876003000
6 9000500000 4 3210 8 7 9000003200 3210 3200

Jak vidíme, třetí políčko zleva v prvém řádku ukazuje, že zde je přípustné pouze číslo 7. Napišme
tedy do zadání (tabulka A1-I9) do příslušného políčka číslo (C1) číslovku 7. Rovněž v pátém políčku
zleva ve druhém řádku shora je přípustné pouze číslo 7. Napišme je tedy do políčka v zadání (E2).
Tato vyluštěná čísla napiše program rovněž do odpovídajících políček v tabulce K1-S9 (v našem případě
do políček M1 a O2).
Dále zjišťujme, zda v některém řádku nebo sloupci či mřížce 3x3 políčka není některé číslo od 1
do 9, které je přípustné pouze v jednom z políček. Tak na příklad v prvním řádku shora je číslo 9
přípustné pouze v šestém políčku zleva. Napíšeme tedy do políčka F1 cifru 9 a program ji napíše i
odpovídajícího políčka P1.
Po doplnění políček si znovu prohlédneme tabulku K1-S9, která dozná určitých změn. Určitě
zjistíme, že výše popsaným způsobem vyluštíme další políčka, (na př. A1=4, A3=3), což následně
povede ke změnám,které nám umožní vyluštit další políčka atd.
Pozorný čtenář jistě přišel na to, že luštíme Sudoku, které bylo jako vyluštěné uvedeno výše.
V průběhu luštění je možno čas od času si zkopírovat tabulku A1-I9 pro případ, že by se luštitel
dopustil nějakého omylu. Pak je možno se vrátit k předchozímu stavu a není třeba začínat zcela
od začátku. Po skončení luštění můžeme tabulku A1-I9 smazat a napsat do ní další zadání.

Samozřejmě by bylo možno sestavit program, který by celé Sudoku vyluštil sám. Tím by ale luštění
ztratilo půvab. Přesto pro méně zdatné luštitele je zde další pomůcka a to tabulka K101-S109. V této
tabulce jsou v předstihu zapisovány vyluštěné hodnoty, které vyplývají z aktuálního stavu tabulky A1-I9.
Zde nám program zapisuje do příslušných políček čísla, která jsou přípustná jedině v tomto políčku řádku,
sloupce, sloupce či mřížky 3x3. Nevyplněným políčkům v tabulce A1-I9 odpovídá nuly v příslušném políčku
tabulky K101-S109. Pokud tedy jsme na rozpacích, jak dál, srovnáme tabulku A1-I9 s tabulkou
K101-S109 a ta čísla, která jsou v tabulce K101-S109 navíc proti tabulce A1-I9 do této tabulky
přeneseme. Je samozřejmé, že této možnosti použijeme jenom v krajním případě. Tabulka K101-S109
je pro větší pohodlí luštitelů překopírována do políček K11-S19. Pokud se stane, že žádná
z výše uvedených metod nevede k cíli, pak musíme zkusit dosadit do některého políčka vhodné číslo.
Je věcí zkušenosti, jak toto číslo volit a jak poznat, že toto nevede k cíli, vrátit se k původnímu zadání a volit

Ještě nehodnoceno. Buďte první :-)

Strany: 1,
(c)2011 Edgehunt Corporation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .