Editor osmisměrek

Napište program, který umožní pohodlné vytváření osmisměrek. Postupně implementujte v programu následující funkce:

  1. Zadání rozměrů osmisměrky (počet sloupců a řádků) a vykreslení plochy pro editaci osmisměrky.
  2. Seznam slov. Program umožní uživateli z klávesnice přidávat slova, která lze později použít v osmisměrce.
  3. Editování osmisměrky. Uživatel si vybere slovo ze seznamu a umístí ho v osmisměrce.
  4. Import slov z textového souboru. Program umožní do seznamu slov přidat slova z textového souboru.
  5. Automatické umístění slova. Po výběru slova ze seznamu jej program automaticky umístí do osmisměrky. Pokud je více možností umístění, uživatel by měl mít možnost ručně vybrat jednu z variant.
  6. Zobrazování počtu neobsazených polí osmisměrky.
  7. Doplnění tajenky. Program umožní zadání tajenky. Pokud už v osmisměrce zbývá jen tolik volných pozic, kolik je písmen v osmisměrce, program automaticky doplní do osmisměrky tajenku.
  8. Uložení osmisměrky do souboru. Vytvořenou osmisměrku lze uložit do textového souboru. Jednotlivé řádky osmisměrky se uloží jako samostatné řádky souboru. Za osmisměrkou bude soubor obsahovat prázdnou řádku a za ní abecedně setříděný seznam slov, která jsou použita v osmisměrce.
  9. Automatický generátor. Program automaticky sestaví osmisměrku po zadání jejích rozměrů, tajenky a seznamu slov, která je možno použít.
  10. Hrací režim. V tomto režimu program načte již vytvořenou osmisměrku ze souboru a umožní uživateli její pohodlné luštění.

Poznámky

Výše popsané funkce musíte implementovat postupně. Pokud nějakou podúlohu nevyřešíte, ty následující nebudou porotou vyhodnocovány.

Za slovo se považuje libovolná posloupnost znaků anglické abecedy.

Jestliže jste nikdy v životě neviděli osmisměrku, spusťte si program "100 % Word Search Free", který obsahuje editor i přehrávač osmisměrek.

Váš program a všechny jeho moduly by měly být uloženy v adresáři C:\ICP. Moduly pojmenujte tak, aby jejich název začínal vaším startovním číslem.

Na začátku programu v komentáři uveďte vaše startovní číslo, seznam všech použitých modulů a čísla podúloh, které jste řešily.

V adresáři C:\DATA je několik souborů, které obsahují ukázky seznamů slov a vytvořených osmisměrek. Můžete je použít pro testování.

Povolené pomůcky jsou anglický slovník, knihy popisující programovací jazyk, jeho prostředí (IDE) a standardní knihovny. Nesmíte používat knihy popisující různé metody, algoritmy a datové struktury.

Celkem můžete získat 100 bodů. 60 z nich je určeno pro ohodnocení funkčnosti, 30 pro efektivitu (chytré a rychlé algoritmy, sofistikované datové struktury). Posledních deset bodů je určeno pro dokumentaci (popis spouštění a používání vašeho programu, popis použitých algoritmů, komentáře, pojmenovávací koncence, přehledný způsob zápisu zdrojového kódu).

Příklad

Rozměry: 6 × 3
Seznam slov: HIT
TURTLE
ONE
HOME
HI
HER
Tajenka: ICP
Osmisměrka:
H I H O M E
I I E C N P
T U R T L E
Vyřešená osmisměrka: Vyřešená osmisměrka
Reprezentace v souboru:
HIHOME
IIECNP
TURTLE

HER
HI
HIT
HOME
ONE
TURTLE
Poznámka: V osmisměrce je možné používat všech osm směrů (S, V, J, Z, SV, JV, JZ, SZ).