board[move] = EMPTY;
должно выполняться только если !found
. Но, вероятнее всего в этом коде только проба шага и анализ на выигрыш, а фактический шаг должен делаться в коде дальше по тексту книги. C++ использует манглинг для имен для поддержки классов, перегрузок, шаблонов.
все конструкции, которые нужны, описаны здесь
Для чего и почему я задаю свои вопросы, спрашивать надо только у меня. Я задал свой вопрос для того, чтобы увидеть фундамент, на котором ты строишь свое обучение. Фундамента у тебя нет, а отсюда нет и обучения.
По описанию в твоем вопросе и по написанному во всех твоих комментариях видно только одно. Ты никогда не учился программированию и по сути так ничего и не умеешь. Все твои потуги никак не отличаются от все тех же игр. Хотя нет. Как разработчик игр, я могу сказать что в играх люди очень часто учатся чему-то полезному для их жизни. У тебя ситуация больше похожа на воскресный запой. Бесполезная трата времени.
Разработка ПО - это не про написание буковок в каком-то порядке. Чтобы всего лишь начать в разработке, нужно уже быть квалифицированным инженером. Написание кода - это рядовой навык переводить инженерные решения в слова на каком-либо языке. А основной навык инженера - это способность мыслить системно в состоянии длительной и полной фрустрации. И у тебя этого навыка нет вообще, опять же, судя по твоим собственным словам. Фрустрации ты банально боишься.
Инженер владеет инструментами и умеет их комбинировать для решения поставленной задачи. У тебя нет даже самых базовых инструментов, которые осваиваются еще в школе. Да, та же математика и прочие школьные дисциплины.
Системное мышление позволяет видеть комплексность задачи. Ты думал что станешь хакером, это слишком высокоуровневая и комплексная задача, чтобы напрямую браться за ее решение. А системного мышления для декомпозиции этой задачи у тебя нет.
Вот почему ты находишься там, где ты находишься. У тебя нет фундамента, а ты пробуешь взяться за что-то с самой макушки и тешишь себя недостижимыми целями.