Zadání soutěžní úlohy kategorie žáci

Vytvořte program, který dokáže vyplnit stanovenou plochu plošnými objekty ze skupiny malých plošných objektů (tzv. skládačka). Objekty jsou definovány v souboru *.dat, zadaném jako parametr při spuštení programu. Soubor obsahuje definici objektů, které vznikly složením jednoho nebo několika základních elementů tvaru čtverce 1 * 1 (souřadnice 0,0;1,0;1,1;0,1). Základní elementy se k sobě v objektu přikládají jedině hranami. Každý objekt má jedinečné jméno a je určen souřadnicemi vrcholů. Soubor obsahuje právě jeden objekt se jménem PLOCHA, který definuje tvar vyplňované plochy. Velikost PLOCHY je maximálně 30 * 30.

Ukázkový definiční soubor:

obdelnik;0,0;2,0;2,3;0,3
obdelnicek;0,0;1,0;1,2;0,2
ctverec1;0,0;2,0;2,2;0,2
ctverec2;0,0;2,0;2,2;0,2
ctverec3;0,0;2,0;2,2;0,2
PLOCHA;0,0;4,0;4,5;0,5


  1. Načtěte ze souboru objekty a PLOCHU.
  2. Zkontrolujte, zda všechny zadané objekty lze složit ze základních elementů. Pokud tomu tak nebude, vypište název chybného objektu a program ukončete.
  3. Načtené objekty vykreslete.
  4. Vytvořte soubor se stejným jménem jako vstupní soubor, ale s příponou .obs, obsahující seznam načtených objektů a jejich obsahy.
  5. Určete, zda PLOCHU lze úplně vyplnit objekty:
    1. bez otáčení a zrcadlení objektů
    2. pouze s otáčením objektů (rotace 90°, 180°, 270°)
    3. s otáčením a zrcadlením objektů

    (K vyplnění PLOCHY nemusí být použity všechny objekty.)

  6. Vykreslete vyplněnou PLOCHU s vyznačením jednotlivých objektů.