Я пытаюсь обнаружить, что «start» и «end» и в проходящем местоположении используется вектор bools, называемый «map», но когда я запускаю программу, иногда появляются и начало и конец в непереходном месте. Я включил небольшой раздел моего кода, который посвящен инициализации мест начала, в конце используется тот же код.Как я могу обнаружить, когда черепица проходит?
start = tydle::Vector(rand() % 512, rand() % 512);
end = tydle::Vector(rand() % 512, rand() % 512);
nodes.resize(0);
int tempx = start.x;
int tempy = start.y;
int Coord = (tempx % 512) * tempy;
while (!map[Coord]){
start.x = rand() % 512;
start.y = rand() % 512;
tempx = start.x;
tempy = start.y;
Coord = (tempx % 512) * tempy;
}
Ниже приведен фрагмент кода используется elswhere, который использует тот же во время цикла и работает отлично:
for (int i = 0; i < numNodes; i++){
tempNodes[i].resize(2);
tempNodes[i][0] = rand() % 512;
tempNodes[i][1] = rand() % 512;
int mapCood = (tempNodes[i][0] % 512) * tempNodes[i][1];
while (!map[mapCood]){
tempNodes[i][0] = rand() % 512;
tempNodes[i][1] = rand() % 512;
mapCood = (tempNodes[i][0] % 512) * tempNodes[i][1];
}
}
WTH is 'tydle :: Vector' ?? –
tydle - класс, извините, должен был упомянуть, что tydle :: Vector - это система координат 2d – simfrek
Опубликовать [MCVE], демонстрируя вашу проблему, пожалуйста. –