[問題] random walk 邊界問題

看板C_and_CPP作者 (Hazih)時間14年前 (2010/04/27 20:37), 編輯推噓0(0013)
留言13則, 2人參與, 最新討論串1/2 (看更多)
題目是10*10的陣列 裡面先放'.' 陣列的[0][0]='A' 以隨機亂數取4的餘數 0 1 2 3 為方向亂走 類似http://bit.ly/9BC3kK第二個圖 我有跑出結果 有結果的圖都是正確的 但是 偶爾會出現沒東西的結果 可是邊界判斷應該沒有錯吧.... 問同學也沒有找到哪有錯誤 可以幫我看一下嗎 謝謝 以下是我random_walk的副程式 int r=0; char ENG=65; int nx=0,ny=0; rw[0][0]=ENG; srand((unsigned)time(NULL)); while( ENG != 90) { r= rand() % 4; // random 0~3 ENG++; switch(r){ case(0): // up if( (ny-1) > -1 && rw[nx][ny-1] == '.' ) { --ny; rw[nx][ny]=ENG; } else ENG--; break; case(1): // down if( (ny+1) < y && rw[nx][ny+1] == '.' ) { ++ny; rw[nx][ny]=ENG; } else ENG--; break; case(2): // left if( (nx-1) > -1 && rw[nx-1][ny] == '.' ) { --nx; rw[nx][ny]=ENG; } else ENG--; break; case(3): // right if( (nx+1) < x && rw[nx+1][ny] == '.' ) { ++nx; rw[nx][ny]=ENG; } else ENG--; break; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.39.187

04/27 20:46, , 1F
請問輸出看結果是怎麼輸出法呢?
04/27 20:46, 1F

04/27 20:47, , 2F
還有,註解和座標對應似乎不太對,不過這不是重點。
04/27 20:47, 2F

04/27 20:55, , 3F
兩個迴圈讓他印出來
04/27 20:55, 3F

04/27 20:56, , 4F
0 up 1 down 2 left 3 right
04/27 20:56, 4F

04/27 20:57, , 5F
所以是一個字元一個字元跑,好的,不會是字串輸出問題。
04/27 20:57, 5F

04/27 20:57, , 6F
可是輸出正常的時候就一切正常 可是都跑幾次就會出現沒有東
04/27 20:57, 6F

04/27 20:57, , 7F
西
04/27 20:57, 7F

04/27 20:58, , 8F
還是說是DEV C的問題= =
04/27 20:58, 8F

04/27 20:58, , 9F
一般來說rw[x - 1][y]是up,不過因為是正方形,所以沒差
04/27 20:58, 9F

04/27 20:58, , 10F
0123的方向自己設定的
04/27 20:58, 10F

04/27 21:02, , 11F
真的耶 哈 我行 跟列 記錯了
04/27 21:02, 11F

04/27 21:04, , 12F
結果跑出來的話就會出現一個 要輸入東西的 閃爍底線
04/27 21:04, 12F

04/27 21:04, , 13F
畫面就停住了
04/27 21:04, 13F
文章代碼(AID): #1BrjgGBd (C_and_CPP)
文章代碼(AID): #1BrjgGBd (C_and_CPP)