Skip to content

mephi-learn/oop_chess

Repository files navigation

Задача решена, но есть некоторые улучшения (ну как мне кажется):

  1. Доска перерисована, у неё теперь есть визуально различимые клетки и обозначения с двух сторон
  2. Появилась человеческое обозначение клеток доски вместо индексов массива (для возврата к прежнему обозначению нужно выставить свойство chessNotation у ChessBoard в false)
  3. Появилась шахматная нотация ходов, теперь вместо команд хода в виде "move 1 4 3 4" можно просто ввести "e2e4". При этом старая запись также работает
  4. Вместо того, чтобы руками водить все ходы, можно передать их в командной строке списох ходов через пробел, но, правда, только в шахматной нотации
  5. Поскольку не всегда удобно вводить ходы даже в командной строке, можно первым параметром указать путь к файлу, где эти ходы записаны по одному на строку. В любом варианте
  6. Вместо ошибки "Передвижение не удалось" выводится подробное описание с причиной, почему именно ход не удался
  7. Помиио указанных правил в задании, реализованы все правила, которые я мог вспомнить, типа возможности прикрыть короля, пешка может стать ферзём и прочее
  8. Ну и в качестве баловства, можно изменить размер доски. Фигуры на новые места нужно расставить самостоятельно в функции buildBoard, пару коней там добавить или дополнительных ферзей :)

Но также есть и минусы:

  1. В связи с тем, что я без понятия как писать юнит тесты, поэтому тестировал вручную, так что возможны ошибки, которые руками выявить не удалось. Попробовал сделать тест функции replaceChessNotation (replaceChessNotationTest), но чую, что это колхоз.
  2. Хотел сделать запись ходов партии, но потом подумал, что никому это не нужно, задание и так подзатянулось, так что делать не стал. Но мог, чессное слово, просто вот такая я ленивая жопа.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages