Skip to content

Files

Failed to load latest commit information.

Latest commit

 Cannot retrieve latest commit at this time.

History

History

ht_3

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Задача 3

Определить класс, описывающий позицию на шахматной доске 8x8. Данные класса: компоненты x и y, отсчитываемые от левого нижнего угла (x = 0, y = 0 - левая нижняя клетка). Все методы, позволяющие установить координаты, в том числе и конструкторы, должны проверять корректность аргументов и генерировать IllegalArgumentException в случае ошибочных значений.

Переопределить метод toString(), выводящий координаты позиции в формате <номер колонки в виде буквы от 'a' до 'h'><номер строки, начиная с 1>. Например, позиция с координатами (1, 1) имеет строковое представление "b2".

Задача 3*

В виде массива строк задана некоторая последовательность позиций на шахматной доске 8x8. Например, "b1", "a3", "c4", "d6". Реализовать метод, проверяющий, что последовательность может быть пройдена фигурой конь в соответствии с правилами хода этой фигуры (буквой "Г"). На вход метод должени принимать массив объектов класса, определенных в предыдущей задаче.

Определить новый класс обрабатываемого исключения, которое генерируется методом проверки в случае ошибки.

public class IllegalMoveException extends Exception { // ... }

Класс должен содержать информацию о неправильном ходе: из какой в какую позиции ход запрещен.

При вызове метода проверки это исключение должно обрабатываться, а неправильный ход выводиться на экран.

Пример:

[in] "g8", "e7", "e6" [out] "конь так не ходит: e7 -> e6"

[in] "g8", "e7", "c8" [out] "OK"