Задание для самостоятельной работы на тему

advertisement
Задание для самостоятельной работы на тему
«Обработка событий в С#»
Разработайте консольное приложение, иллюстрирующее обмен сообщениями
между двумя классами.
Имеется игровое поле в виде шахматной доски размером NxN. В одной из клеток
игрового поля находится кошка. Кошка имеет имя, координаты и вес. Событие
заключается в попытке перемещения кошки (случайным образом) на одну из соседних
клеток. На каждое перемещение тратится часть веса кошки. В некоторых клетках имеются
приятные или неприятные сюрпризы для кошки. Приятным сюрпризом является рыба,
съев которую, кошка увеличивается в весе на определенную величину. Неприятным
сюрпризом является край игрового поля, запрещающий кошке двигаться в этом
направлении.
Порядок выполнения.
Создайте класс «Игровое поле», содержащий информацию о размерах поля. Этот
класс может совпадать с главным классом приложения, т.е., содержать функцию Main.
Создайте класс «Кошка». Объект класса должен содержать имя, координаты и вес
кошки, конструктор с параметрами, а также методы «Распечатать состояние» и
«Переместиться» (этот метод пока оставьте пустым).
Промежуточный результат. Создайте объект «Кошка» в методе Main.
Распечатайте состояние кошки.
Теперь следует создать обработчик событий:
- в классе «Кошка» создайте делегат и создайте событие (назовем его
«Перемещение»);
- в классе «Игровое поле» создайте функцию для обработки события. Эта функция
получает в качестве параметров координаты клетки, на которую кошка собирается
переместиться, и возвращает информацию о клетке (например: 0 – обычная пустая клетка,
-1 – стенка, край поля, 2 – рыба.).
- свяжите функцию для обработки события с событием.
Теперь обработчик событий следует откуда-нибудь вызвать. Для этого можно
использовать метод «Переместиться». В этом методе сгенерируйте случайным образом
направление движения и вызовите событие «Перемещение», передав ему новые
координаты. Событие возвращает код состояния, в зависимости от кода выполните
действия с объектом «Кошка»: если код=0 – переместите кошку в эту клетку, уменьшив ее
вес, если код=2 – пусть кошка съест рыбу, если код=1, то тоже как-то отреагируйте.
Можно также выдать эту информацию на печать.
Для тестирования приложения в методе Main создайте цикл из нескольких
итераций (например, 100), в котором кошка пытается переместиться и распечатывает свое
состояние.
_______________________________________________________________________
Примечание: Для генерации случайного числа можно использовать класс Random.
Его метод int Next (int maxValue) возвращает случайное число в диапазоне от 0 до
maxValue-1.
Download