Problem
簡易型的圖形編輯器可以處理長方型的圖檔,長寬為 M x N (1<=M,N<=250),圖中每個像素(pixel)都有其代表的顏色,每張圖片都是由像素所組成的。
本題目要求寫出一個程式,能模擬圖形編輯器的功能。
Input
輸入的每一行為圖片編輯的指令,每一道指令的開頭以英文大寫字母來表示。指令會帶有一些參數,每個參數會在同一行並以空白字元隔開。常見的一種參數為像素(pixel)的座標位置(x, y),x表示欄號(1~M),y表示列號(1~N),原點在圖的左上角。顏色、大寫字母、檔名以MSDOS 8.3格式表示。
編輯器支援的指令如下:
(注意:下表左列的每一組字母皆在同一列,會有多列的情形是因為我不會畫網頁表格…)
I M N | 新增文件,大小為M x N,初始顏色為白色(白色以大寫字母O表示)。 |
C | 清除文件內容,並保留文件大小,清除後文件變為白色(O)。 |
L X Y C | 畫點,在(X,Y)的位置上畫點,顏色為C。 |
V X Y1 Y2 C | 畫垂直線,在第X欄上畫垂直線,Y的值介於Y1, Y2之間,直線的顏色為C。 |
H X1 X2 Y C | 畫水平線,在第Y列上畫水平線,X的值介於X1, X2之間,直線的顏色為C。 |
K X1 Y1 X2 Y2 C | 填入矩形,也就是畫實心矩形,(X1,Y1)為矩形左上角的點,(X2,Y2)為右下角的點,填入顏色為C。 |
F X Y C | 填入色彩,把色彩C填到位置(X,Y)上,若(X,Y)週邊的顏色與(X,Y)原來的顏色相同的話,也同樣填上色彩C,同理,不斷擴散直到把整塊相同顏色的區塊填滿為止。 |
S Name | 儲存檔案,檔名為Name。 |
X | 結束。 |
Output
當遇到儲存檔案的指令時,你必須輸出該圖片的檔名,與圖片最後的樣子。請參考範例的輸出格式。
Errors
若指令的開頭字元不是 I, C, L, V, H, K, F, S, X,則視為錯誤的指令整行忽略掉,並直接處理下一道指令。
Sample Input
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
Sample Output
one.bmp
OOOOO
OOOOO
OAOOO
OOOOO
OOOOO
OOOOO
two.bmp
JJJJJ
JJZZJ
JWJJJ
JWJJJ
JJJJJ
JJJJJ
原文出處
沒有留言:
張貼留言