Научился: Делать видеообзор Трудности: Не запнуться на долгую паузу) Сейчас пересмотрел, что я выложил вчера на ютуб и думаю: "Ууууу......" )))) Смотреть видеозапись:http://www.youtube.com/watch?v=Vfof_eaCjOs
Научился: Писал все и сразу с нуля со своей логикой, но старался по шагам ЕВ. Иногда эти шаги не совпадали, поэтому сказать конкретно за этот урок тяжело. Программа написана неделю назад, местами вылизывал, подпиливал, чтоб не стыдно в отчет выложить. Трудности: Довести её до логического конца)) Хотелось бросить её и не заморачиваться, работает и ладно.
В плане архитектуры хотелось, чтоб логика была разбита на независимые слои, где каждый верхний слой инкапсулирует нижний. Как и обещал, выкладываю свою реализацию на всеобщее рассмотрение. Критика, обсуждения, дополнения, предложения приветствуются.
http://www.fayloobmennik.net/5030084
Конечно не идеал, чёт время уже не хочется на нее тратить. Есть моменты реализация которых мне не нравятся, есть моменты с костылями.
Коментариев оставил достаточно, но если у кого какие вопросы возникнут, что и как по коду - отвечу.
Основные моменты изменений:
Плашки - это обычный массив plate[] (этим избежал ненужных эллементов двумерного массива), инкапсулировал его в Plates, где рализовал итератор для него и два именованих энумератора. Это дало возможность перебирать все плашки с помощью foreach и обращаться к плашке так, будто она лежит на поле plates[row,column].
Описал событие которое возникает при смене статуса плашки. Когда плашка меняет статус, генерируется событие, на которое можно подвесить любую цепочку методов для обработки. У меня один метод, который разбирает, как эту плашку анимировать.
В плашке есть поле делегат, на который я подписываю метод с анимацией. Каждая плашка может анимироваться как хочет, хоть цепочку из анимаций. При этом сохраняется полная абстракция. Обрабатывая анимацию, мы вообще не в курсе, как именно она анимируется.