# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 | Основная форма |
|
|||
Первое создание проекта. На уроке мы добавим основные элементы, начнем подготовку. *Задание:: Написать описание игры и пункт "Об авторе", приложить скриншот Отчёт отправил: 14981. DimanDOS Выполнено за 18 мин. [Показать отчёт] Научился: Узнал о игре Bombermen. Сложности: Придумать описание программы. Комментарии: Спасибо Кириллу Шмойлову за предоставленную возможность по работе с курсом! |
|||||
2 | Площадка для игр |
|
|||
На уроке мы займемся основой для нашей будущей игры, по всем правилам ООП будем создавать всё в отдельных классах. Начнем готовить расположение основных элементов на доске. *Задание:: дописать ещё возможные состояния, прикрепить скриншот Перечисления Отчёт отправил: 14981. DimanDOS Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Создавать pictureBox с помощью кода, а также задавать свойства pictureBox'а. Сложности: Случайно вместо sizeX поставил sizeY и сетка не отображалась. Но потом быстро разобрался. Комментарии: Сегодня получил очень приятный сюрприз на почту - ссылка на второй урок!!! У меня нет слов чтобы выразить свою благодарность и радость. Я уже расстроился, что не смогу проходить уроки дальше и тут бац! Следующий урок! Очень интересный, с точным описанием действий и объяснением, что для чего делается. Кстати вот состояния: enum Sost { пусто, стена, кирпич, бомба, взрыв } |
|||||
3 | Все работы хороши |
|
|||
Пройдем по смежным профессиям, без которых, увы, начинающему программисту не обойтись! *Задание:: добавить остальные необходимые картинки Отчёт отправил: 14981. DimanDOS Выполнено за 40 мин. [Показать отчёт] Научился: Узнал, какие состояния есть у клетки Сложности: Найти картинки. Комментарии: Урок 3 выполнен! ) |
|||||
4 | Передислокация или смена позиции |
|
|||
Напишем метод, позволяющий нам изменять состояние одной клетки, в зависимости от нашего желания, а так же научим программу заполнять красиво основную форму игры. *Вопрос:: какие нужно провести обязательные дополнения при первом заполнении карты, для корректной игры? Отчёт отправил: 14981. DimanDOS Выполнено за 25 мин. [Показать отчёт] Научился: Ставить картинку в pictureBox с помощью кода и состояний (enum Sost) Сложности: Трудностей не возникало Комментарии: Урок очень интересный! На счёт того, что надо реализовать для дальнейшей расстановки картинок, не знаю, что надо точно. Но есть одно предположение: чтобы поставить самого Бомбермена, надо вычислить Location выделенной клетки на скриншоте. Но как вычислить - не знаю. |
|||||
5 | Главный герой |
|
|||
На уроке мы начнем заниматься специальным классом, который будет отвечать за нашего главного героя. Целый отдельный класс, специально созданный для одной задачи: управлением состоянием главного героя. *Задание:: создать перечисление возможных перемещений гл. героя Отчёт отправил: 14981. DimanDOS Выполнено за 25 мин. [Показать отчёт] Научился: Повторил создание pictureBox-а с помощью кода. Узнал о свойстве .BringToFront(). Сложности: Когда Бомбермен появился, он был очень растянутый вниз. Оказалось, что я перепутал знаки - и * в задании свойства Size. Но тут же это исправил. Комментарии: Урок очень интересный и занимательный! Всё так классно и понятно объясняется :) Что касается задания: я считаю все возможные варианты движения Бомбермена будут такими: enum Motion { вправо, влево, вверх, вниз } |
|||||
6 | Оно шевелится |
|
|||
На этом уроке мы заставим главного героя перемещаться по полю, отправляя ему команды прямо с клавиатуры. *Задание:: написать условия, при которых гл. герою нельзя будет переходить в следующую клетку Отчёт отправил: 14981. DimanDOS Выполнено за 45 мин. [Показать отчёт] Научился: Писать более лёгкий и понятный код для передвижения любого элемента Сложности: Поверить, что всё получиться) Комментарии: Очень классный, интересный и познавательный урок! ОЧЕНЬ ЗАХВАТЫВАЮЩЕ! Задание: по моему мнению, Бомбермен не может передвигаться при следующих условиях: if (!(player касается picture с Image Бомба || player касается picture с Image Стена || player касается picture с Image Кирпич)) switch (arrow) { ... } |
|||||
7 | Туда - нельзя, сюда - нельзя |
|
|||
Конечно же главный герой может ходить только по специальным дорожкам, не может ходить сквозь стены и пр. Как же его этому обучить?! Узнаем на этом уроке. *Вопрос:: почему гл. герой ходит сквозь стены? Отчёт отправил: 14981. DimanDOS Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Писать проверочный код для определения Image следующей клетки. Сложности: Из-за моей невнимательности опять возникла ошибочка... Комментарии: Урок очень интересный, да и сам курс мне очень нравиться! Очень хочется увидеть отчёты других ;) Вопрос - ответ: Бомбермен залезает на стены из-за того, что его центр находиться в другом ряду, не в ряду с данным pictureBox'ом |
|||||
8 | Никуда нельзя! |
|
|||
Будем дописывать процедуру проверки смежных клеток, делая перемещение гл.героя более правильным. *Задание:: сделать плавное смещение героя при переходе сквозь стену Отчёт отправил: 14981. DimanDOS Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Писать код для проверки на смежные клетки Сложности: Записать видео-обзор) Комментарии: На этом уроке я узнал способ проверки смежных клеток. Мне он очень понравился, хоть и был немного сложным. С большим удовольствием буду двигаться дальше, вместе с Бомберменом) Видеообзор: epUoX-5Wmw4 |
|||||
9 | Рождение монстра |
|
|||
Главному герою нужно с кем-то сражаться! Мы начнем создавать врагов и размещать их на нашей игровой карте. *Вопрос:: можно ли использовать один класс на двоих при перемещении гл. героя и моба? Отчёт отправил: 14981. DimanDOS Выполнено за 35 мин. [Показать отчёт] Научился: Повторил создание pictureBox'ов с помощью кода Сложности: Урок очень интересный и понятно изложенный и поэтому ТРУДНОСТЕЙ НЕ ВОЗНИКАЛО Комментарии: Познавательный урок, всё так хорошо объясняется! Я самостоятельно добавил код случайного передвижения моба с помощью переменной которой присваивается рандомное значение от 1 до 4. Если выпадает число 1 - моб двигается влево, если 2 - то вправо, 3 - вниз, а 4 - вверх. Но не знаю - правильно ли я сделал, это будет понятно на следующем уроке. |
|||||
10 | Каждый двигается одинаково, но по-своему |
|
|||
Небольшой рефакторинг никогда не помешает! На уроке мы будем реализовывать общие правила для передвижения наших персонажей. *Задание:: заставить Моба передвигаться к опр. точке Отчёт отправил: 14981. DimanDOS Выполнено за 50 мин. [Показать отчёт] Научился: Понял, что можно движение моба и player'a объединить в один класс Сложности: Решить задание. Комментарии: Много думал над заданием, но так и не решил. Переменной destinePlace задано значение new Point(15, 2); в timer_Tick поставил такую проверку: private void timer_Tick(object sender, EventArgs e) { if (mob.Location != destinePlace) mob.Location = new Point(mob.Location.X, mob.Location.Y - 3); else return; } Моб двигается, но проскакивает определённую точку. |
|||||
11 | Дальняя дорога |
|
|||
Создаем метод поиска пути до определенной точки. *Задание:: написать словесное описание трех уровней сложности Моба Отчёт отправил: 14981. DimanDOS Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Создавать БЕСКОНЕЧНЫЕ циклы while, то есть когда цикл выполняется всегда Сложности: Трудностей не возникало, ведь каждый урок курса отлично объясняется, рисуются схемы, да и вообще - курс отличный! Комментарии: Я считаю что в 1 уровне сложности Моб должен выбирать своё направление рандомно и быть непредсказуемым. Во 2 втором уровне должен прокладывать себе, но двигаться с небольшой скоростью. В 3 - работать точно также как и во втором, только чуть быстрее. И добавить бы 4, где Моб сам ставил бомбы. |
|||||
12 | Ориентация на местности |
|
|||
Дописываем процедуру, помогающую найти следующую точку, в которую необходимо дойти. *Задание:: дописать программу так, чтобы моб обходил препятствия Отчёт отправил: 14981. DimanDOS Выполнено за 40 мин. [Показать отчёт] Научился: Первый раз использовал do-while Сложности: Быть внимательным и не допустить ошибку Комментарии: Знал про do-while с уроков Александра Шевчука, но впервые его использовал на уроке videosharp) Урок отличный и интересный! Иду дальше - делать бомбы, кто со мной? :~) |
|||||
13 | Бомба своими руками |
|
|||
Это же БОМБЕРМЕН! У него должна быть БОМБА! На этом уроке мы этим и займемся! Подарим нашему бомбермену бомбочку, и у него будет возможность её установить! *Вопрос:: где должна располагаться информация о наличии бомб? (в каких классах?) Отчёт отправил: 14981. DimanDOS Выполнено за 40 мин. [Показать отчёт] Научился: Менять картинку pictureBox'a на котором находиться player Сложности: Видимо где-то пропустил момент получения доступа к классу MovingClass в MainBoard. Но вскоре сам понял как надо было его инициализировать. Комментарии: Урок очень интересный. Добавил чтоб при каждом запуске игры количество мобов выбиралось от 5 до 10. Кстати вот ответ на заданный вопрос: скорее всего в классе MainBoard |
|||||
14 | Ложись, БОМБА! |
|
|||
Конечно же у бомбы должен быть таймер, не взрываться же ей в руках?! Будем реализовывать красоту, которая отвечает за "тиканье" бомбы. *Вопрос:: как сообщить «наверх», что бомбе пора взорваться? Отчёт отправил: 14981. DimanDOS Выполнено за 1 час. 40 мин. [Показать отчёт] Научился: Усвоил, как осуществлять замену картинок. Но как видно на скриншоте корректный подсчёт идёт, а картинку обратно поставить не получается Сложности: Понять, почему картинка не сменяется обратно после удаление всей графики на данном pictureBox (--graph.Clear(Color.DimGray)--) Комментарии: Ответ на задание: if (kolSec == 0) { map[bombPlace.X, bombPlace.Y] = Sost.огонь; } else { graph = mapPic[bombPlace.X, bombPlace.Y].CreateGraphics(); graph.Clear(Color.DimGray); map[bombPlace.X, bombPlace.Y] = Sost.бомба; WriteSecond(kolSec--); } В данном коде картинка (она указывается строкой "map[bombPlace.X, bombPlace.Y] = Sost.бомба") не устанавливается. Что может быть не так? |
|||||
15 | Ба-БАХ! |
|
|||
Реализовываем детонацию бомбы *Задание:: сделать так чтобы вместо «ВЗРЫВ» писалось «Бомба активирована!» Отчёт отправил: 14981. DimanDOS Выполнено за 1 час. 20 мин. [Показать отчёт] Научился: Узнал что такое делегат и работе с ними Сложности: Работать с делегатами Комментарии: Интересный урок, раньше где-то краем уха слышал "делегат", но даже примерно не понимал что это такое. |
|||||
16 | Горим! |
|
|||
Будем реализовывать момент горения после детонации бомбы. *Вопрос:: почему гл. герой не может наступить на место со взрывом и как это исправить? Отчёт отправил: 14981. DimanDOS Выполнено за 2 час. 30 мин. [Показать отчёт] Научился: Работать с foreach Сложности: Забыл указать мощность взрыва (lenFire) и программа некорректно работала. Думаю самым сложным было найти причину. Комментарии: Сегодня снова записал видео-обзор. Урок очень интересный. Дополнительно сделал, чтобы бомба тоже взрывалась и состояние клетки было ОГОНЬ. *Надо указать: когда player касается pictureBox'a с состоянием ОГОНЬ игра заканчивалась Видеообзор: YTgooGk8AJc |
|||||
17 | Сборщик мусора |
|
|||
Сборщик мусора (garbage collector) - специальный процесс, периодически освобождает память, удаляя объекты, которые уже не будут востребованы приложениями. На уроке мы более подробно познакомимся с этой формой управления памятью. *Вопрос:: как часто запускается Сборщик мусора(автоматически)? Отчёт отправил: 14981. DimanDOS Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Узнал о сборщике мусора, GC Сложности: Вникнуть в тему) Комментарии: Вы очень понятно объяснили, всё усвоил. Спасибо за урок! |
|||||
18 | Вызывайте пожарных! |
|
|||
После всего сумасшествия, которое было от взрыва бомбы, необходимо прибраться и почистить. Для этого мы создадим специальных "пожарных", которые помогут нам в этом. *Вопрос:: в какой же момент должен погибнуть гл. герой? Отчёт отправил: 14981. DimanDOS Выполнено за 15 мин. [Показать отчёт] Научился: Ещё раз на практике поучился работать с делегатами. Сложности: Всё так понятно объясняется, что создаётся впечатление как будто я это всегда знал :) Но конечно же это заслуга автора. Спасибо! Комментарии: Да, урок довольно простой. Победил всех мобов, но правда, несколько раз подорвал себя) А момент гибели Бомбермена и окончания игры должен наступать когда: игрок заходит на огонь или его поймает моб. А если player захотел сам поймать своего заклятого врага? =) |
|||||
19 | Не пойман - не вор! |
|
|||
Только сейчас мы приступаем к реализации окончания игры. Добавим процедуру, которая будут контролировать смерть главного героя. *Задание:: добавить в гл. меню игры возможность выбора сложности игры Отчёт отправил: 14981. DimanDOS Выполнено за 30 мин. [Показать отчёт] Научился: Проверять столкновение с мобом Сложности: Дописать код для проверки победы или проигрыша. Комментарии: Добавил такую функцию: в зависимости от состояния игры (продолжение, победа, проигрыш) возвращается соответствующее число (продолжение - 1, проигрыш - 2, победа - 3). Если 1 - ничего не происходит; если 2 - выводиться окно с заголовком "Проигрыш"; а если 3 - с заголовком "Победа" |
|||||
20 | Три уровня сложности |
|
|||
Неинтересно играть с простым врагом, для этого мы добавим три уровня сложности игры, чтобы нам не заскучать на полях сражения! *Задание:: сделать так, чтобы гл. герой поворачивался в ту сторону, в которую бежит Отчёт отправил: 14981. DimanDOS Выполнено за 35 мин. [Показать отчёт] Научился: Создавать уровни сложности. Сложности: Трудностей не возникало, так как всё очень понятно объясняется, очень занимательно. Комментарии: Сделал уровни сложности не в виде типа int, а создал перечисление enum. Урок очень интересный. Да, конечно с уровнями сложности и самому веселей играть) Задание выполнено, результат на скриншоте. |
|||||
21 | Бонусы |
|
|||
Бонусы! Подарки! Призы! Плюшки и Плюшечки! Всё что душе угодно сможешь ты добавить после этого урока, а я покажу как сделать основные - бонусы, с помощью отдельного класса! *Задание:: насладиться полученным результатом и дописать много-много приделок, которые только улучшат и украсят игру! Отчёт отправил: 14981. DimanDOS Выполнено за 1 час. 20 мин. [Показать отчёт] Научился: Познакомился с Dictionary. Думаю эта функция может применяться и в других программах. Сложности: Разобраться с Dictionary Комментарии: Вот я и закончил курс! С одной стороны я очень рад что получил такой результат, а с другой даже печально что курс закончился... Две стороны, как у медали. Но есть соображения над чем ещё поработать в свободное время. Добавил ещё один вариант бонусов - монетки. Если у тебя есть 10 монет и больше ты можешь стать быстрее, если 13 и больше - увеличить огонь, а если 15 и больше то количество бомб. Спасибо автору за замечательную идею воплощённую в этом курсе! |
|||||
22 | ФИНАЛЬНЫЙ УРОК |
без видео |
|||
(В этом уроке нет видео) Приветствую! Ты дошел до конца этого курса, до этой черты доходят немногие! Ты уже победитель!!! Расскажи в нескольких словах что ты узнал на курсе. Отчёт отправил: 14981. DimanDOS Выполнено за 2 час. 40 мин. [Показать отчёт] Научился: Монтировать видео. Об остальном в обзоре Сложности: Красиво сделать обзор Комментарии: Курс очень интересный, познавательный. Я уверен что его ждёт БОЛЬШОЕ будущее, он станет таким же, одним из самых лучших, как к примеру, Сокобан. Видеообзор: zkQdGp36OjE |
|||||
Итого: 22 видеоурока |
7 час. 26 мин. |
3 чел. | |||
Финалисты: DimanDOS, Dimon, Neverwinter 2 . |