[問題] 走迷宮的走(10:52補充)
遇到的問題: (題意請描述清楚)
不知道為什麼 都會跑歪 也就是沒有走該走的最短路線
希望得到的正確結果:
一條路走到底
程式跑出來的錯誤結果:
●●●●●●●●●●
●◎◎◎◎●◎○○●
●◎●◎◎◎●●○●
●○○●●●◎●○●
●●○●◎◎●●○●
●○●●●◎●◎○●
●○○●◎◎◎●◎●
●●○●○●◎◎●●
●○○○○●◎◎◎●
●●●●●●●●●●
滿的圈圈就是牆壁 圈是可以走的路 雙圈是走過的路
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
vc++
有問題的code: (請善用置底文標色功能)
//地圖的設定: 可以走的路是整數0 走過的路設定1//
int visit(int map[][10], int i, int j,int success){
map[i][j] = 1;
if(map[8][8]==1)
success=1;
if(success==0 && map[i][j+1] == 0)
visit(map, i, j+1,success);
if(success==0 && map[i+1][j+1] == 0)
visit(map, i+1, j+1,success);
if(success==0&& map[i+1][j] == 0)
visit(map, i+1, j,success);
if(success==0 && map[i+1][j-1] == 0)
visit(map, i+1, j-1,success);
if(success==0 && map[i-1][j+1] == 0)
visit(map, i-1, j+1,success);
if(success==0 && map[i-1][j-1] == 0)
visit(map, i-1, j-1,success);
if(success==0 && map[i][j-1] == 0)
visit(map, i, j-1,success);
if(success==0 && map[i-1][j] == 0)
visit(map, i-1, j,success);
return 1;
}
補充說明:
謝謝
我有試著去測試
map[i][j] = 1; 後面多放一個算陣列位子
road[++count]=10*i+j;
印出來的結果是
road[1]=0 road[2]=11
road[3]=12 road[4]=13
road[5]=14 road[6]=25
road[7]=36 road[8]=45
road[9]=55 road[10]=66
road[11]=77 road[12]=88 (跑回去了?!?!?!?!)
road[13]=87 road[14]=86
road[15]=68 road[16]=76
road[17]=57 road[18]=65
road[19]=64
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 119.77.253.108
※ 編輯: cola1230 來自: 119.77.253.108 (12/29 20:32)
→
12/29 20:37, , 1F
12/29 20:37, 1F
推
12/29 21:51, , 2F
12/29 21:51, 2F
※ 編輯: cola1230 來自: 119.77.253.108 (12/29 22:54)
→
12/29 23:09, , 3F
12/29 23:09, 3F
推
12/29 23:33, , 4F
12/29 23:33, 4F
→
12/30 00:01, , 5F
12/30 00:01, 5F
→
12/30 00:05, , 6F
12/30 00:05, 6F