Zadání soutěžní úlohy kategorie mládež

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 trojúhelníku 1 * 1 (souřadnice 0,0;1,0;0,1 nebo jeho zrcadlem). 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:

triangl1;0,0;2,0;0,2
triangl2;0,0;2,0;0,2
ctverec;0,0;2,0;2,2;0,2
PLOCHA;0,0;4,0;4,5;0,5
lichobezka1;0,2;2,0;2,5;0,5
lichobezka2;0,0;2,0;2,3;0,1


  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ů.