Эти функции, содержащие цикл for, должны проверять, есть ли в вертикальном движении в шахматной игре отрезок между начальными координатами и конечными координатами.Предполагается проверять столбцы (только вертикальные).
Они запускаются в другой функции, которая проверяет, является ли попытка перемещения действительной.
Однако, когда я запускаю свою программу с этим кодом, если на самом деле эти функции выполняются, код останавливается.Я не уверен, что все процессы останавливаются, но он не печатает ничего, что должен печатать.
Я почти уверен, что проблема в этом коде, потому что без него моя программа работает правильно.
Я пытался изменить идентификаторы в циклах for, но это не сработало.Я считаю, что проблема связана с добавлением 1 к «fromr».Без этого код работает просто отлично.Но мне нужна функция для проверки по фрагменту ниже fromr, а не от самого себя.
int checkVerticalPathwayWhite(int fromr, int fromc, int tor){
fromr = fromr + 1;
for(int r = fromr; r < fromr; r++){
for(int c = fromc; c == fromc;){
if (board[r][c] != &empty){
printf("Pathway is not clear\n");
return 0;
}
}
}
printf("Pathway is clear");
return 1;
}
int checkVerticalPathwayBlack(int fromr, int fromc, int tor){
fromr = fromr - 1;
for(int r = fromr; r > tor; r = r-1){
for(int c = fromc; c == fromc;{
if (board[r][c] != &empty){
printf("Pathway is not clear\n");
return 0;
}
}
}
printf("Pathway is clear");
return 1;
}
Я ожидаю, что функция вернет 0, если в пути есть непустая часть между (fromr + 1) до (tor-1) и 1, если ее нет.