今天偷懒了下,才写了七十行代码,罪过。反对偷懒。
empty函数在bottle类里。
bool empty( int x, int y )
{
if ( x<0 || x>=8 || y<0 || y>=16 ) return false;
if ( b_grid_type[y][x] == NOTHING ) return true;
return false;
}
move函数在doctor类里。
void move( void )
{
switch( d_direct )
{
case DD_DOWN:
if ( d_state )
{
if ( bottle->empty( d_x, d_y+1 ) )
{
++d_y;
break;
}
}
else
{
if ( bottle->empty( d_x, d_y+1 ) && bottle->empty( d_x+1, d_y+1 ) )
{
++d_y;
break;
}
}
/*************这里没写完,预计是个while(true)的循环*********************/
break;
case DD_UP:
if ( d_state )
{
if ( bottle->empty( d_x+1, d_y ) ) d_state = false;
else if ( bottle->empty( d_x-1, d_y ) ) { --d_x; d_state = false; }
}
else
{
if ( bottle->empty( d_x, d_y-1 ) )
{
d_state = true;
Color tmp = d_color[0];
d_color[0] = d_color[1];
d_color[1] = tmp;
}
else if ( bottle->empty( d_x+1, d_y-1 ) )
{
++d_x;
d_state = true;
Color tmp = d_color[0];
d_color[0] = d_color[1];
d_color[1] = tmp;
}
}
break;
case DD_LEFT:
if ( d_state && bottle->empty( d_x-1, d_y ) && bottle->empty( d_x-1, d_y-1 ) ) --d_x;
if ( !d_state && bottle->empty( d_x-1, d_y ) ) --d_x;
break;
case DD_RIGHT:
if ( d_state && bottle->empty( d_x+1, d_y ) && bottle->empty( d_x+1, d_y-1 ) ) --d_x;
if ( !d_state && bottle->empty( d_x+1, d_y ) ) --d_x;
break;
default:
break;
}
}
我在想猫说的话,一天四百行,一年就是12W行。我觉得,写玛丽医生这种代码,除了理顺思路的时候费点脑子以外,码代码的时候还是相当轻松的,比那些邪门算法轻松多了,一天四百行倒也不是没有可能呢。婷婷加油,毕业的时候一定要拿出至少十万行代码来。