0001 void randLaby() { //生成随机的迷宫 0002 labySize = LABY_MAX / 2 + rand() % ( LABY_MAX / 2 ); 0003 for ( int i = 0; i < labySize; i++ ) 0004 for ( int j = 0; j < labySize; j++ ) { 0005 laby[i][j].x = i; 0006 laby[i][j].y = j; 0007 laby[i][j].incoming = 0008 laby[i][j].outgoing = UNKNOWN; 0009 laby[i][j].status = WALL; //边界格点必须是墙 0010 } 0011 for ( int i = 1; i < labySize - 1; i++ ) 0012 for ( int j = 1; j < labySize - 1; j++ ) 0013 if ( rand() % 4 ) laby[i][j].status = AVAILABLE; //75%的格点为空可用 0014 startCell = &laby[rand() % ( labySize-2 ) + 1][rand() % ( labySize-2 ) + 1]; 0015 goalCell = &laby[rand() % ( labySize-2 ) + 1][rand() % ( labySize-2 ) + 1]; 0016 startCell->status = goalCell->status = AVAILABLE; //起始格点必须可用 0017 }