#include #include typedef struct { char txt; unsigned int line; } goo; goo P[200][200]; #define LINE_X 1 #define LINE_Y 2 #define LINE_UP 4 #define LINE_DOWN 8 char G[16] = {' ', '-', '|', '+', '\\', '*', '*', '*', '/', '*', '*', '*', 'x', '*', '*', '*'}; void line_x(int y, int x1, int x2) { int x; for (x=x1; x<=x2; x++) P[x][y].line=P[x][y].line|LINE_X; } void line_y(int x, int y1, int y2) { int y; for (y=y1; y<=y2; y++) P[x][y].line=P[x][y].line|LINE_Y; } void line_up(int x1, int y1, int x2, int y2) { int i; for (i=0; i<=x2-x1; i++) { P[x1+i][y1+i].line=P[x1+i][y1+i].line|LINE_UP; } } void line_down(int x1, int y1, int x2, int y2) { int i; for (i=0; i<=x2-x1; i++) { P[x1+i][y1-i].line=P[x1+i][y1-i].line|LINE_DOWN; } } void print_ch(int x, int y, char c) { if (P[x][y].txt==' ') P[x][y].txt=c; else if (P[x][y].txt!=c) P[x][y].txt='*'; } void clear(int x1, int y1, int x2, int y2) { int i, j; for (i=x1; i<=x2; i++) for (j=y1; j<=y2; j++) { P[i][j].txt=' '; P[i][j].line=0; } } int main(void) { int X, Y, x1, x2, y1, y2, x, y, t, i, j; char s[1000], u[1000]; while (scanf("%d %d ", &X, &Y), X||Y) { clear(1, 1, X, Y); while (1) { scanf("%s ", s); if (!strcmp(s, "LINE")) { scanf("%d %d %d %d ", &x1, &y1, &x2, &y2); if (x1>x2) { t=x1; x1=x2; x2=t; t=y1; y1=y2; y2=t; } if (x1==x2) { if (y2