README.md 4.0 KB

Шашки

Версия для Microsoft Word находится в файле WORD.docx. Названия файлов кликабельны

Классы

CheckerPiece

Перечисление CheckerPiece (CheckerPiece.h) содержит в себе все возможные виды шашек на доске:

  • Пустая ячейка
  • Белая шашка
  • Белая дамка
  • Черная шашка
  • Черная дамка

CheckerPosition

Класс CheckerPosition (CheckerPosition.h, CheckerPosition.cpp) представляет собой позицию на доске, описываемую координатами X и Y:

  • isValid() - возможна ли позиция на доске
  • to_num_string() - сериализовать в вид точки. Например: (1, 0)
  • to_string() - сериализовать в текстовый вид. Например: F3

CheckerBoard

Класс CheckerBoard (CheckerBoard.h, CheckerBoard.cpp) представляет собой доску.

  • board - матрица, представляющая ячейки доски
  • lastMove - текстовое описание последнего шага на доске
  • moveNewPos - конечная позиция последнего шага на доске
  • moveOldPos - стартовая позиция последнего шага на доске
  • applyMove() – применить ход с альтернативной доски на текущую
  • evaluate() – рассчитать «счет» доски (чем больше – тем сильнее преимущество белых, чем меньше – тем сильнее преимущество черных)
  • generateAdditionalCaptures() – просчитать возможные последовательные ходы (когда «срубаем» больше одной шашки за раз)
  • generateLegalMoves() – просчитать все возможные шаги на текущей доске для определенной стороны
  • generateMovesForPiece() – просчитать все возможные шаги на текущей доске для определенной шашки
  • getCheckerAt() – получить тип пешки на данной ячейке
  • isGameOver() – окончена ли игра (победа одной из сторон)
  • isValidCapture() – возможно ли «срубить» пешку данным ходом
  • isValidMove() – возможен ли данный ход
  • loadFromFile() – загрузить положение пешек на доске из файла
  • moveChecker() – переместить шашку с учетом дополнительных условий («срубить» стоящие на пути и превратиться в дамку при достижении края доски)
  • print() – вывести доску в консоль
  • setCheckerAt() – установить шашку данного типа в данной ячейке

CheckersAI

Класс CheckersAI (CheckersAI.h, CheckersAI.cpp) представляет собой искусственный интеллект для игры в шашки isWhite - за белых ли играет ИИ minimax() – рекурсивный рассчет «счёта» доски с учетом будущих ходов findBestMove() – найти самый оптимальный текущий ход, исходя из «счёта», рассчитанного в minimax

Искусственный интеллект реализован с помощью алгоритма minimax с применением альфа-бета отсечения.