0001 inline Cell* advance ( Cell* cell ) { //从当前位置转入相邻格点 0002 Cell* next; 0003 switch ( cell->outgoing ) { 0004 case EAST: next = cell + LABY_MAX; next->incoming = WEST; break; //向东 0005 case SOUTH: next = cell + 1; next->incoming = NORTH; break; //向南 0006 case WEST: next = cell - LABY_MAX; next->incoming = EAST; break; //向西 0007 case NORTH: next = cell - 1; next->incoming = SOUTH; break; //向北 0008 default : exit ( -1 ); 0009 } 0010 return next; 0011 }