Szúdoku feladat - Programozás tanítása

Tartalomhoz ugrás
Szúdoku feladat
A szúdoku egy logikai játék, melyben megadott szabályok szerint számjegyeket kell elhelyezni egy táblázatban. Legismertebb változataiban n×n-es (négyzet alakú) táblázatok üres celláit kell 1...n számokkal úgy kitölteni, hogy a táblázat egyik sorában és oszlopában se ismétlődjenek a számjegyek. Annak érdekében, hogy a rejtvénynek csak egy megoldása (kitöltése) legyen, a táblázatot a készítők előre feltöltik néhány szükséges számmal.
Ebben a feladatban egy szúdoku feladványgyűjteménnyel kell dolgoznia. A megoldás során vegye figyelembe a következőket:

    • Megoldását választása szerint Java vagy C# programozási nyelven kell elkészítenie! Az Ön által választott programozási nyelvet jelölje meg a feladatlap fedőlapján! A javítás során csak a megjelölt nyelven készült megoldás lesz értékelve!
    • A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például:3. feladat:)!
    • Az egyes feladatokban a kiírásokat a minta szerint készítse el!
    • Az ékezetmentes kiírások is elfogadottak.
    • Az azonosítókat kis- és nagybetűkkel is kezdheti.
    • A program megírásakor az állományban lévő adatok helyes szerkezetét nem kell ellenőriznie, feltételezheti, hogy a rendelkezésre álló adatok a leírtaknak megfelelnek.
    • A megoldását úgy készítse el, hogy az azonos szerkezetű, de tetszőleges bemeneti adatok mellett is helyes eredményt adjon!
Példa egy 4x4-es szúdokura
Kezdőállapot
21


32



4
1


Megoldás
21


32



4
1


A feladvanyok.txt forrásállomány minden sorában egy-egy n×n-es (négyzet alakú) szúdoku feladvány kezdőállapotát rögzítettük sorfolytonos leírással, 0-val jelölve a kitöltetlen mezőket, 1...n számjegyekkel a kitöltött mezőket!
Például a 0040420000230300 számsor a következő 4×4-es feladványt takarja:

Az állomány 4x4-es mérettől 9x9-es méretig tartalmaz négyzetes feladványokat legfeljebb 250 sorban. Feltételezheti, hogy minden méretből tartalmaz legalább egy feladványt az állomány!


4
42



23

3

Konzolos feladatrész
Készítsen konzolos alkalmazást a következő feladatok megoldására, amelynek projektjét sudokuCLI néven mentse el!

1 pont

A forráskódba a meglévő osztály elé illessze be az Osztaly.java avagy az Osztaly.cs forrásállományból a Feladvany osztályt definiáló kódrészletét! A beillesztett osztály tetszés szerint bővíthető további tagokkal!

1 pont

Olvassa be a feladvanyok.txt állományban lévő adatokat és tárolja el egy olyan adatszerkezetben, ami a további feladatok megoldására alkalmas! Határozza meg és írja ki a képernyőre a minta szerint, hogy hány feladvány található a forrásállományban!

4 pont

Kérjen be a felhasználótól egy 4...9 intervallumba eső (4≤x≤9) egész számot! A beolvasást addig ismételje, amíg a megfelelő értékhatárból érkező számot nem kapjuk! Határozza meg, és írja a képernyőre, hogy ebből a méretből hány feladvány található a forrásállományban!

5 pont

Válasszon ki véletlenszerűen egy feladványt, amely az előző feladatban bekért méretű! A kiválasztott feladványt jelenítse meg a képernyőn a minta szerint! Ha nem sikerült véletlenszerű feladványt kiválasztani, akkor dolgozzon a legelső beolvasott feladvánnyal!

5 pont

Határozza meg és írja a képernyőre a kiválasztott feladvány kitöltöttségét %-os formában a minta szerint! A kitöltöttségen a kitöltött mezők arányát értjük az összes mező számához viszonyítva! A százalékos értéket egész számra kerekítve jelenítse meg!

3 pont

A Feladvany osztály megfelelő metódusát felhasználva jelenítse meg a kiválasztott feladványt a konzolon!

2 pont

Válogassa ki és írja ki fájlba az adott méretű feladványokat! Ha például a felhasználó a 4-es méretet adta meg, akkor a kimeneten egy sudoku4.txt állományba kerüljenek a 4x4-es méretű feladványok! Az állományban soronként egy feladvány kerüljön!

5 pont

Konzolos minta:

Kommunikáció 2pont

Grafikus feladatrész
Készítsen grafikus alkalmazást a következő feladatok megoldására, amelynek projektjét sudokuGUI néven mentse el!

1 pont

10. feladat

A grafikus alkalmazásban a következő feladatokat végezze el:
Az új feladványok rögzítésre szolgáló alkalmazás felületét alakítsa ki a minta szerint! Az ablak szélessége 540 képpont, magassága 210 képpont legyen, címsorában a „Sudoku-ellenőrző” szöveget jelenítse meg!

Vezérlőelemek és elrendezés 4pont

A méret beállítására szolgáló szöveges beviteli mező alapértelmezett értéke 4 legyen! A mező értékét csak a „+” és „-” gombok segítségével lehessen változtatni a 4...9 intervallumban (4≤x≤9)!
A kezdőállapot gépelése közben a rögzítésre szolgáló mező alatt egy címkében folyamatosan jelezzük, hogy hány karakter lett beírva!
Az „Ellenőrzés” feliratú gombra kattintva ellenőrizzük, hogy a kezdőállapot hossza a méretnek megfelelő-e! Ha a feladvány hossza a kiválasztott méretnek megfelelő, akkor az „A feladvány megfelelő hosszúságú!” üzenetet jelenítse meg felugró ablakban! Ellenkező esetekben „A feladvány rövid: kell még # számjegy!”, vagy „A feladvány hosszú: törlendő # számjegy!” üzenetek közül jelenítse meg az oda megfelelőt, benne a # jel helyén a megfelelő számértékkel!

Adatbevitel 6pont

Vissza a tartalomhoz