所以我一直在這個程序的一部分工作了幾個小時。我有幾行代碼已經讓我困惑了一個多小時。這只是沒有意義。我一遍又一遍地讀出這些句子,並在腦海中思考它應該做什麼,但它並沒有這樣做!這可能是我忽略的一個愚蠢的錯誤(通常發生在我身上),或者它可能是由於睡眠不足/過去幾個小時不斷對它進行工作。爲什麼代碼的順序無法正常工作?
該程序相當長,但我遇到的代碼塊只有幾行 - 所以我只會發布整個東西,如果需要的話。
好了,所以這裏是一個快速運行的這是什麼應該做下來:
我有一個載體,充滿了與手動設置字符串(19,各爲79個字符)。這個1維矢量將被視爲2d矢量 - 因爲我試圖保持它的基本。所以這個字符串向量,如果每行顯示1個字符串,本質上會創建一個帶有矩形部分'。'的網格。和連接矩形部分的'#'的路徑。它應該得到一個x和y座標,並傳遞給該函數。它像二維矢量一樣循環並找到位置。它檢查該位置的char是否不是'。'或'#',否則它會將字符更改爲X以標記其位置。我使用一個有效的x,y座標來設置測試,該座標是'。'的位置。 - 問題是在我的cout「match found :::」行後面,當程序運行時,它顯示vLevel [i] [j] ='。'的值。但出於某種原因,它不會去else函數被調用4次以上,我把cout語句。下面是網格的樣子。白色空間是空間..每一行是向量的字符串:
.......
....... .......
.......##....... ..........................
....... ....... ..........................
....... .......................... ..........
....... ..........................#####..........
.......................... ..........
.......................... #
.......................... #
# #
# #
........ # ............ .......
........ # ............ .......
........ # ............ .... .......
........###############............ .... .......
........ ............####....
........ ............ ....
繼承人的代碼段我處理:
void markPosition(vector<string> & vLevel, int x, int y){
cout << "x: " << x <<endl;
cout << "y: " << y <<endl;
bool doubleCheck = true; //extra bool I added for testing purposes
for(int i = 0; i < vLevel.size(); i++){
for(int j = 0; j < vLevel[i].size(); j++){
//displays if x and/or y are out of range
if (doubleCheck){
if ((x < 0) || (x > vLevel[i].size())){
cout << "X is out of range!" << endl;
doubleCheck = false;
}
if ((y < 0) || (y > vLevel.size())){
cout << "Y is out of range!" << endl;
doubleCheck = false;
}
}
else {
return;
}
if ((j == x) && (i == y)){
//////THIS IS THE PROBLEM LOL
cout << "match found::: " << vLevel[i][j] << endl;
if ((vLevel[i][j] != '.') || (vLevel[i][j] != '#')){
cout << "Located in the blankness" << endl;
return;
}
else {
cout << "I don't get reached!!??" << endl;
vLevel[i][j] = 'X';
markPosition(vLevel,i-1,j);
markPosition(vLevel,i+1,j);
markPosition(vLevel,i,j+1);
markPosition(vLevel,i,j-1);
}
}
}
}
}
的間距得到了粘貼時會搞砸,所以我試着把它清理一下。我不明白爲什麼它跳過別的。就像我說的,一旦這個問題得到解決,我相信我會覺得啞巴。我需要睡覺哈哈。
讓我知道你是否需要更多信息。先謝謝了!
誰遺忘的德·摩根定律另一個程序員。 :) – Barmar 2013-03-07 03:05:24
該死的太慢了。在我的手機上閱讀它,但必須登錄到計算機才能正確剪切和粘貼。 +1爲你快速先生。 – 2013-03-07 03:08:37
我不明白大聲笑 – ModdedLife 2013-03-07 03:09:25