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