我正在使用繼承,我沒有問題。 我有這個向量的字符串(基本上是一個二維數組的char)。C++發現二維數組中兩點之間的距離
確切的中間是鯊魚的位置,鯊魚 的性格根據其他魚的位置而變化。
例如
.....
.....
^.l..
.....
.....
的箭頭是其中所述魚是並且由於魚是向左。鯊魚變成'l'
.>...
.....
..u..
.....
.....
箭是魚的地方,因爲魚是起來。鯊魚變成一個「U」
我不得不這樣做正確的代碼是這樣的:
void Shark::point(std::vector<std::string>& map){
if (map[0][0] != '.' || map[1][0] != '.' || map[2][0] != '.' || map[3][0] != '.' || map[4][0] != '.' || map[1][1] != '.' || map[2][1] != '.' || map[3][1] != '.'){
ProtoFish::m_direction = Direction::left;
}
if (map[0][1] != '.' || map[0][2] != '.' || map[0][3] != '.' || map[1][2] != '.'){
ProtoFish::m_direction = Direction::up;
}
if (map[4][1] != '.' || map[4][2] != '.' || map[4][3] != '.' || map[3][2] != '.'){
ProtoFish::m_direction = Direction::down;
}
if (map[0][4] != '.' || map[1][4] != '.' || map[2][4] != '.' || map[3][4] != '.' || map[4][4] != '.' || map[1][3] != '.' || map[2][3] != '.' || map[3][3] != '.'){
ProtoFish::m_direction = Direction::right;
}
}
我基本上只是檢查,如果魚在這個地圖:
l u u u r
l l u r r
l l . r r
l l d r r
l d d d r
哪裏如果'。' char不存在,這是魚的位置,所以鯊魚應該指向這個方向。
問題發生在有多條魚的地方。
>....
..>..
..*..
.>...
..^>.
我明白我應該做什麼,但我不知道該怎麼做,或者如何開始。目標只是讓鯊魚面臨與最近魚類相同的方向。所以基本上箭頭「最接近」中間。 有人可以幫我解決這個問題嗎? 也許就像一個單獨的函數,可以計算每個元素距中心的距離?
如何開始的問題有點超出了這裏的範圍。作爲程序員從這樣一個稍大的問題開始做的第一件事是考慮每個子問題。你如何得到你的意見?你應該寫一些樣板文件代碼來閱讀某些內容嗎?你如何創建輸出?首先了解問題的界面,這些部分需要哪些信息?從小處着手,打印出來。如果你遇到困難,請寫下這樣的問題。你寫了一個很好的問題,而不是正確的問題。 – theWanderer4865