Определить класс, описывающий позицию на шахматной доске 8x8. Данные класса: компоненты x и y, отсчитываемые от левого нижнего угла (x = 0, y = 0 - левая нижняя клетка). Все методы, позволяющие установить координаты, в том числе и конструкторы, должны проверять корректность аргументов и генерировать IllegalArgumentException в случае ошибочных значений.
Переопределить метод toString(), выводящий координаты позиции в формате <номер колонки в виде буквы от 'a' до 'h'><номер строки, начиная с 1>. Например, позиция с координатами (1, 1) имеет строковое представление "b2".
В виде массива строк задана некоторая последовательность позиций на шахматной доске 8x8. Например, "b1", "a3", "c4", "d6". Реализовать метод, проверяющий, что последовательность может быть пройдена фигурой конь в соответствии с правилами хода этой фигуры (буквой "Г"). На вход метод должени принимать массив объектов класса, определенных в предыдущей задаче.
Определить новый класс обрабатываемого исключения, которое генерируется методом проверки в случае ошибки.
public class IllegalMoveException extends Exception { // ... }
Класс должен содержать информацию о неправильном ходе: из какой в какую позиции ход запрещен.
При вызове метода проверки это исключение должно обрабатываться, а неправильный ход выводиться на экран.
Пример:
[in] "g8", "e7", "e6" [out] "конь так не ходит: e7 -> e6"
[in] "g8", "e7", "c8" [out] "OK"