Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Морской Бой / Делегаты отображения

  • На этом уроке мы перенесём функции из Моря в редактор и
    создадим Делегаты для отображения Кораблей и Выстрелов.
  • Дата отправки отчёта: 2 сентября 2016 г.
  • Задание выполнено: за 1 час. 30 мин.
  • Чему научился: Повторил работу с делегатами.
  • Что было сложным: Сложностей не было.
  • Комментарии: На верхнем скриншоте раскраска клетки поля при промахе. На нижнем - рассмотрены случаи попадания и потопления корабля.
  • Оценка видео-уроку:
Отчёт от 7276 за Морской Бой / Делегаты отображения


Отчёт от 7276 за Морской Бой / Делегаты отображения




Оцени работу

 
Сохранить страницу:

6452. --
Кирилл Шмойлов
Кирилл Шмойлов
ответить
→  Ильшат  # Морской Бой / Делегаты отображения / 2016-09-02 15:42

Ильшат, поделись, какая у тебя операционная система?


7276. --
Ильшат
Ильшат
ответить
→  Кирилл Шмойлов  # Морской Бой / Делегаты отображения / 2016-09-02 15:46

Linux Mint 17.3 Cinnamon 64bit


4004. --
Елена
Елена
ответить
→  Ильшат  # Морской Бой / Делегаты отображения / 2016-09-03 05:29

Красиво получилось


8959. --
Максим Саратов
Максим Саратов
ответить
→  Ильшат  # Морской Бой / Делегаты отображения / 2016-09-03 10:16

Я вот вроде бы понимаю что такое делегаты, но на практике их применять не умею, молодец!


10157. --
Кирилл Лебедев
Кирилл Лебедев
ответить
→  Ильшат  # Морской Бой / Делегаты отображения / 2016-09-03 10:40

Крассиво)


7276. --
Ильшат
Ильшат
ответить
→  Елена  # Морской Бой / Делегаты отображения / 2016-09-03 10:47

Спасибо, Елена.


7276. --
Ильшат
Ильшат
ответить
→  Максим Саратов  # Морской Бой / Делегаты отображения / 2016-09-03 11:03

Максим, значит нужно сравнить примеры решения конкретной задачи с использованием делегата и без него, понять в чем его польза. В данной задаче это своего рода оптимизация. У нас имеется карта игрового поля - матрица 10 на 10. И есть соотвествующая ей матрица картинок, изображений и прочее. Между картой и отображением должна быть синхронизация. Что для этого нужно сделать? Обновлять содержимое матрицы картинок при изменении карты. Как этого можно добиться? 1) периодически (например, в таймере) класс формы будет получать всю игровую карту и полностью перерисовывать всю матрицу картинок - синхронизация, но это затратно по времени и может вызвать артефакты при отображении. 2) передать в класс логики игры ссылку на класс формы и только в нужный момент вызывать перерисовку - это уже хорошо, обновляет только нужную картинку, но есть зависимость от класса формы, это не гуд. 3) вместо ссылки на весь класс формы передать ссылку на некоторую абстрактную функцию перерисовки, которая не связана с формой - это и есть делегат.


7276. --
Ильшат
Ильшат
ответить
→  Кирилл Лебедев  # Морской Бой / Делегаты отображения / 2016-09-03 11:04

Спасибо, Кирилл, цветовая стилистика подобрана из видео урока)


8959. --
Максим Саратов
Максим Саратов
ответить
→  Ильшат  # Морской Бой / Делегаты отображения / 2016-09-03 11:08

Доходчивое пояснение!



Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Применение делегатов этой всегда нереальная магия. В данном случае немного запутанно получилось но главное что получилось. Все-таки я бы эту игру создавал бы немного по-другому. Создать объект Море Создать объект Корабль описать им методы и работать с ними. Поживем увидим что дальше. Евгения Витольдовичу спасибо за подведение итогов в конце видеоурока!
Трудности: пока непонятно зачем нам объект Точка не проще было бы просто координаты прописывать. т.к. при вызове каждого метода приходиться создавать точку так же пока непонятно зачем мы этим сейчас занимаемся если собирались редактор делать для размещения кораблей



Научился: Работать с делегатами (но необходимо еще практиковаться).
Трудности: Плохо понятно, для чего здесь нужны делегаты и как они работают.
Большое спасибо за урок. Замечаний нет.