but now WA is chasing me.
Maybe somebody could find what I'm doing wrong.
- Code: Select all
#include <stdio.h>
#include <stdlib.h>
void newTable( char x[][252] ){
int i, j;
for(i = 0; i<252; i++){
for( j = 0; j<252; j++ ){
if( i==0 || i==251 || j == 0 || j==251)
x[i][j] = '1';
else
x[i][j] = 'O';
}
}
}
void prntTable( char x[][252], int w, int h ){
int i, j;
for(i = 1; i <= h; i++){
for( j = 1; j <= w; j++ )
printf("%c", x[i][j] );
printf("\n");
}
}
void pColor( char t[][252], int x, int y, char c ){
t[y][x] = c ;
}
void vColor( char t[][252], int x, int ya, int yb, char c ){
int i;
if( yb < ya )
yb ^= ya ^= yb ^= ya;
for( i = ya; i <= yb; i++ )
t[i][x] = c;
}
void hColor( char t[][252], int xa, int xb, int y, char c ){
if( xb < xa )
xb ^= xa ^= xb ^= xa;
int i;
for( i = xa; i <= xb; i++ )
t[y][i] = c;
}
void kColor( char t[][252], int xa, int ya, int xb, int yb, char c ){
int i, j;
if( xb < xa )
xb ^= xa ^= xb ^= xa;
if( yb < ya )
yb ^= ya ^= yb ^= ya;
for(i = ya; i <= yb; i++)
for( j = xa ; j <= xb; j++ )
t[i][j] = c ;
}
void fColor( char t[][252], int x, int y, char c ){
char oldColor = t[y][x];
if( oldColor == c )
return;
if( t[y][x] == '1' )
return;
t[y][x] = c;
if( t[y-1][x] == oldColor ) fColor( t, x, y-1, c );
if( t[y][x-1] == oldColor ) fColor( t, x-1, y, c );
if( t[y][x+1] == oldColor ) fColor( t, x+1, y, c );
if( t[y+1][x] == oldColor ) fColor( t, x, y+1, c );
}
int main(){
char cmd, param;
char name[99];
char table[252][252];
int widht, height;
int x, y, z, k;
do{
scanf("%c", &cmd);
switch( cmd ){
case 'I':
scanf("%d %d", &widht, &height );
newTable( table );
break;
case 'C':
newTable( table );
break;
case 'L':
scanf("%d %d %c", &x, &y, ¶m);
pColor( table, x, y, param );
break;
case 'V':
scanf("%d %d %d %c", &x, &y, &z, ¶m);
vColor( table , x, y, z, param );
break;
case 'H':
scanf("%d %d %d %c", &x, &y, &z, ¶m);
hColor( table , x, y, z, param );
break;
case 'K':
scanf("%d %d %d %d %c", &x, &y, &z, &k, ¶m);
kColor( table, x, y, z, k, param );
break;
case 'F':
scanf("%d %d %c", &x, &y, ¶m);
fColor( table , x, y, param );
break;
case 'S':
scanf("%s", &name);
printf("%s\n", name );
prntTable( table, widht, height );
break;
case 'X':
return 0;
break;
default:
break;
}
scanf("%c", &cmd);
} while ( 1 == 1 );
return 0;
}
