Анализ игры и динамическое создание поля из картинок.
Дата отправки отчёта:
17 июня 2016 г.
Задание выполнено: за
1 час. 20 мин.
Чему научился:
Для меня нового особого ничего не было. Я повторил пройденный ранее материал и укрепил свои знания. Все-таки, теперь я более-менее понимаю слова Евгения Витольдовича: "количество перейдет в качество". Мы и раньше на других видеокурсах создавали элементы динамически, я плохо понимал, как все это работает. Просто переписывал код. Сейчас уже намного лучше, понимание потихоньку приходит. Конечно, я уже пробую создавать эти динамические элементы не первый раз.
Что было сложным:
Ничего сложного, все понятно. Хороший урок получился. Потом, я думаю, сделаем рефакторинг)
Комментарии:
Все отлично. Попробовал записать анимацию этих шариков, не знаю получилось ли (так как формат же gif, а поддерживает ли этот сайт гифки, я не знаю). Вот и узнаем) ***Не получилось загрузить анимацию, поэтому выкладываю ссылку на нее. (в описании увидите)*** p.s. Еще у меня при отображении шариков, иногда проскакивают серые клетки. То ли я что-то намудрил в коде, то ли еще что-то... Если кто догадался, напишите, пожалуйста, в чем может быть проблема. Вот небольшой участок кода (я делал это по таймеру): ShowItem(nr1, nr2, 0, color); // 0 - это номер первого элемента в перечислении, по сути это пустая картинка (none); nr1 = random.Next(max); // генерация чисел (max - это размер поля (8*8) nr2 = random.Next(max); color = random.Next(7); nr4 = random.Next(1, 4); // это номер элемента в перечислении Item
// это так, просто для отображения разных видов шарика (прыгающий, просто шарик и т.п.) сделано. switch (nr4) { case 1: ShowItem(nr1, nr2, (Item)nr4, color); break; case 2: ShowItem(nr1, nr2, (Item)nr4, color); break; case 3: ShowItem(nr1, nr2, (Item)nr4, color); break; }
и сам Enum: private enum Item { none, // нумерация как раз с 0 начинается по умолч. ball, // просто шарик jump, // прыгающий шарик hint, // маленькие шарики path //путь перемещения шарика }
А, всё! Я разобрался в своей программе. Ошибка была в том. что при генерации нового цвета (color = random.Next(7);) могло генерироватся псевдослучайное число 0. А у нас нумерация цветов с 1 до 6. А при 0 как раз пустая клетка и возвращалась, которая как отображалась как серая.