/task_test_03_2020

тестовое задание

Primary LanguagePHP

Шахматы

chess.php — консольный проигрыватель шахматных партий. Программа получает ходы игроков в качестве аргументов и выводит состояние доски с фигурами после этих ходов.

Например:

$ php chess.php e2-e4 e7-e5
8 ♜♞♝♛♚♝♞♜
7 ♟♟♟♟-♟♟♟
6 --------
5 ----♟---
4 ----♙---
3 --------
2 ♙♙♙♙-♙♙♙
1 ♖♘♗♕♔♗♘♖
  abcdefgh

В текущем виде chess.php никак не проверяет правильность ходов.

Порядок выполнение заданий

Склонируйте исходный код себе на компьютер. После выполнения каждой задачи надо выполнить коммит. Готовое решение можно выложить на github.com, gitlab.com или другой git-хостинг.

Задача 1

Задача 1: дописать программу таким образом, чтобы она выкидывала исключение при нарушении очерёдности хода (например, два раза подряд ход белых).

Чтобы проверить корректность решения, запустите тесты:

$ ./phpunit.phar --group=rotation

Задача 2

Задача 2: дописать программу таким образом, чтобы она выкидывала исключение при нарушении правил хода пешкой (pawn).

Чтобы проверить корректность решения, запустите тесты:

$ ./phpunit.phar --group=pawn

В тестах проверяются только ходы пешками, для других фигур валидацию ходов делать не нужно.

Как ходит пешка

  • Пешка может ходить вперёд (по вертикали) на одну клетку;
  • Если пешка ещё ни разу не ходила, она может пойти вперёд на две клетки;
  • Пешка не может перепрыгивать через другие фигуры;
  • Пешка может бить фигуры противника только по диагонали вперёд на одну клетку;
  • Также существует взятие на проходе, но им можно пренебречь :)