Informatika gyűjtemény

Egy szinttel feljebb Grafikus szerkesztő

2004050607080910

NézetNyomtat

Grafikus szerkesztő

Grafikus képszerkesztő programok, mint pl. a Photoshop lehetővé teszi, hogy a képeket pixelenként módosítsuk. A képeket egy $M\times N$ pixeltömb reprezentálja, és mindegyiknek van egy adott színe.

Feladat

Írj programot, amely egy egyszerű képszerkesztő-programot szimulál.

Bemenet

A bemenet parancsok sorozatát tartalmazza, ahol is mindegyik parancsot egy nagybetű reprezentál a sor első karaktereként. Ha a parancs paraméterezhető, akkor ezek ugyanebben a sorban, szóközökkel elválasztva lesznek felsorolva.
A pixeleket két egésszel reprezentáljuk, az oszlopszám 1 és $M$ között, a sorszám 1 és $N$ között, ahol $1\leq M, N \leq 250$. Az origó a kép balfelső sarka. A színeket nagy betűvel jelöljük.
A következő parancsokat kell kezelnie a programnak:
Parancs Leírás
I M N
Csinál egy új $M\times N$ méretű képet az összes pixelét fehérre állítva.
C
Összes pixelt fehérre (0) állítja (magyarán törli a táblát)
L X Y C
Beszínezi az $(X, Y)$ pixelt $C$ színre.
V X Y1 Y2 C
Rajzol egy függőleges vonalat az $X.$ oszlopban a $[Y1,Y2]$ sorokban $C$ színnel.
H X1 X2 Y C
Rajzol egy vízszintes vonalat az $Y.$ sorban a $[X1,X2]$ oszlopokban $C$ színnel.
K X1 Y1 X2 Y2 C
Rajzol egy telített téglalapot, aminek $(X1,Y1)$ a balfelső, $(X2,Y2)$ a jobbalsó sarka, $C$ színnel.
F X Y C
Beszínezi az $R$ területet $C$ színnel, ahol $(X,Y)\in R$ és minden olyan pixel benne van még
$R$-ben, aki ugyanolyan színű mint $(X,Y)$ illetve bármelyik oldala közös az $R$-ben lévő
bármelyik pixellel. (Ezt hívjuk "festékvödörnek", vagy "kitöltőnek")
S <fájlneve>
Kiírja a tartalmat egy fájlba.
X
Befejezi a munkamenetet.

Kimenet

Mindegyik S <fájlnév> parancsra kiírja a kép tartalmát az adott fájlba. A kép sorait a fájl sorai reprezentálják (mindegyik karakter a kép egy pontjának színét jellemzi).
Hagyd figyelmen kívül az egész sort, ha nem a következő karakterekkel kezdődik: I, C, L, V, H, K, F, S, vagy X és lépj tovább a következő parancsra. Bármilyen más hiba esetén a program kimenetet meghatározhatatlan.

Példa

paint.be kimenetek
I 5 6
L 2 3 A
S one.bmp
G 2 3 J
F 3 3 J
V 2 3 4 W
H 3 4 2 Z
S two.bmp
X
<one.bmp>
OOOOO
OOOOO
OAOOO
OOOOO
OOOOO
OOOOO

<two.bmp>
JJJJJ
JJZZJ
JWJJJ
JWJJJ
JJJJJ
JJJJJ

Tesztadatok

Coming soon...