Ссылка на книгу:
https://readli.net/izuchaem-c-cherez-programmirova... 206 страница функция computerMove()
Я пишу крестики-нолики по гайду из книги, и тут есть одна непонятная вещь:
//Книга
int computerMove(vecotr<char> board, char computer)
{
unsigned int move = 0;
bool found = false;
while(!found && move < board.size())
{
if(isLegal(move, board))
{
board[move] = computer;
found = winner(board) == computer;
board[move] = EMPTY;
}
if(!found)
{
++move;
}
}
}
Сначала я перебираю в цикле все возможные варианты хода от 0 до 8. Проверяю, не противоречит ли каждый из ходов правилам. Если ход допустим правилами, то я ставлю фигуру компьютера в выбранную клетку и проверяю, приводит ли
такой ход компьютер к победе. Если этот ход не дает победы, пробую поставить
фигуру в следующую свободную клетку. Однако если ход привел компьютер к победе, то цикл завершается. Я нашел ход (found равно true), который должен сделать компьютер (занять клетку номер move), чтобы победить.
//
Не понятно, говорится если ход не дает победы, то компьютер ставит фигуру в следующую клетку, так вот каким образом он ставит фигуру в другую свободную клетку, не понятно как он это делает в коде, если в коде я вижу только как очищается выбранная клетка компьютером. И что значит эта запись - found = winner(board) == computer; Это ли проверка победы компьютера?
Прошу помочь с данным кодом, чтобы понять что тут написано советую заглянуть в книгу, заранее спасибо!