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