На этом уроке мы создадим массив из кружков, они будут сначала двигаться случайно, похоже на бильярд. Дальше мы создадим правила для их передвижения и в конечном итоге реализуем анимированный игральный кубик.
Задание: Нарисовать верхнюю сторону игрального кубика с шестью анимированными точками для смены чисел.
Дата отправки отчёта:
9 декабря 2015 г.
Задание выполнено: за
2 час. 50 мин.
Чему научился:
Повторил работу с двумерными массивами в C#.
Что было сложным:
Организовать работу программы с использованием классов.
Комментарии:
Интересная тема, анимация завораживает. Понравилась идея представления значения числа на игральном кубике в виде двумерного массива. По началу, меня это не устраивало, реализовал в виде одномерного массива, но получилось так, что решение Евгения Витольдовича лучше отражает идею, по коду легче понять замысел. Однако синтаксис этих вложенных конструкций меня не устраивал. Поэтому добавил дополнительные переменные для выделения значений из массивов.
Добавил классы NumberArena (абстракция числа на кубике), Drawer(рисовальщик) и GameLogic(внешний класс, который всем управляет и вызывается из формы). По ходу разработки было много сомнений. Конечно, синтаксически добавить класс не составляет никаких проблем, даже есть такой способ в рефакторинге "выделение класса" и прочие мелкие махинации с кодом. Проблемы были в моменте связи классов. И тут-то мне не нравилось, что классы знают много друг о друге и выполняют чужую работу. Не буду подробно описывать все эти моменты, в итоге удалил класс Drawer и передал его обязанности GameLogic.
Своим полученным решением не доволен, но доволен тем, что появились идеи для дальнейших решений, которыми займусь в ближайшем будущем. Спасибо, Евгений Витольдович)
Ильшат, поищи и почитай про "запахи кода", так будет понятнее, когда и что нужно исправлять. Например, здесь: ru.wikipedia.org/wiki/Код_с_запашком Мы обязательно эту тему тоже возьмём и проработаем после НГ.
С данным термином знаком по книгам Бека и Фаулера. Тема актуальная, требует не только умения разбивать задачу на взаимодействующие классы, но и их правильной организации. Спасибо, Евгений Витольдович)
Ильшат, я рада что ты отлично позанимался и поэкспериментировал с кодом, на сейчас ты сделал все что сделал, а дальше уверена что ты реализуешь еще лучше и качественней!!! Ты уже Молодец! Я рада что уроки еще больше тебя развивают и дают идеи и мотивацию двигаться дальше!!! :)
Научился: Больше понимания работы с графикой Трудности: Материал доступный, сложность - в объёме работы Урок интересный: вариантов алгоритмов движения фигур много и их реализация затягивает.
В моём решении нажатие кнопки запускает генерацию граней, к-рую останавливает нажатие на ту же кнопку.
За урок - благодарность.