0
bool GameUtil::isValidPath(std::vector<int>& path, Player* player, Game* game) {
///**Get borad*/
std::vector<Square*> board = game->getBoard();
int maxDistanceTravel = 0;
int playerCanTravel = 0;
//first square and last square must be present
if (path[0] == 0 && path[path.size() - 1] == (board.size() - 1)) {
for (int i = 0; i < path.size() - 1; i++) {
/**Max distance of each board from player*/
maxDistanceTravel = compute(board.at(path[i]), player);
playerCanTravel = path[i + 1] - path[i];
if ((playerCanTravel > maxDistanceTravel) && (playerCanTravel <= 0)) {
return false;
}
}
return true;
}
return false;
}
我是一個新的C++學習者的實例後主動終止叫,我一遍又一遍的得到同樣的錯誤,但無法弄清楚什麼是錯的,這顯然沒有超出範圍,請幫助,謝謝。不斷拋出「的std :: out_of_range」
首先在調試器中運行以捕獲異常,並找到您的代碼拋出的位置。然後看看正在使用的索引,你會發現它超出了界限。 –
我該如何調試這段代碼? – Aaron
所以你在哪一行得到一個錯誤?如果你沒有調試器,你可以先註釋掉一些你的代碼。打印路徑和紙板的大小。 – artsylar