C# форум программистов

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

основатель — Волосатов Евгений Витольдович

Бомбермэн

Вы управляете героем, который может ставить бомбы. На вашем пути могут встретиться разрушаемые и неразрушаемые объекты. А так же враги, которые при соприкосновении убьют вас и игра окончится.
Цель игры: победить своих врагов, установив свою бомбу таким образом, чтобы взрыв от нее задел оппонента.

Эту игру мы будем реализовывать на языке программирования C#
Чему вы научитесь:
1. Создание динамических игр
2. Работе с массивами
3. Делегаты
4. Сборщик мусора
5. Перечисления
6. Создания полновесного ИИ
Создай игру, в которую будет интересно играть!

Кол-во уроков: 21
Продолжительность: 7 часов 30 минут

Хочу купить!

Купить в рассрочку за мегахеши

Цена: 2500 p.


Список уроков | фото | видео

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 Основная форма 00:10:14
9 чел. ★ 5 Done
  Первое создание проекта.
На уроке мы добавим основные элементы, начнем подготовку.

*Задание:: Написать описание игры и пункт "Об авторе", приложить скриншот
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 02 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время когда болеешь 
Комментарии: Игра детства, особенно на денди очень много играли в неё на двоих. Реализовал иконки в своём стиле. Добавил описание игры и об авторе. 
2 Площадка для игр 00:24:45
8 чел. ★ 5 Done
  На уроке мы займемся основой для нашей будущей игры, по всем правилам ООП будем создавать всё в отдельных классах. Начнем готовить расположение основных элементов на доске.

*Задание:: дописать ещё возможные состояния, прикрепить скриншот Перечисления
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время и не дописать игру =) 
Комментарии: Добавил варианты состояний, который пришли на ум по памяти игры и того, что минимум реализовать планирую. Добавил вспомогательную функцию, которая принимает состояние, а возвращает цвет. Всё реализовал сам, потом досмотрел видео. з.ы. Отличную игрушку затронул, у самого она в очереди на реализацию. з.з.ы. Zoom наоборот сохраняет пропорции, см. скриншот =) Отображение клеток уже после добавления BorderStyle.FixedSingle получилось бы, просто надо было создать экземпляр класса MainBoard(). Не стоило использовать обобщающее состояние, так как их может быть много, надо было конкретно указать, перечисление состояний чего именно. Да и не стоило использовать слово Sost, нужно отучаться от плохих привычек, ещё на одном из вебинаров это обсуждалось активно =) з.з.з.ы. Есть тебе ещё над чем работать, молодец, отличные курсы создаёшь, удачи в этом не простом деле. 
3 Все работы хороши 00:15:51
6 чел. ★ 5 Done
  Пройдем по смежным профессиям, без которых, увы, начинающему программисту не обойтись!

*Задание:: добавить остальные необходимые картинки
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 55 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: остановиться 
Комментарии: Так как у меня имеется реальная Dendy, так как в эту игру играли в дестве, так как у меня есть эта игра на реальной Dendy, у меня естественно имеются и эмуляторы с играми, я запустил игрушку и вытащил оттуда нужные мне спрайты, сохранил их в формате png, но оптимизировал, чтобы не было лишнего мусора, поэтому каждый отдельный спрайт весит байты, а в сумме все 38 весят 7,7кб. Очень хорошо, не будут раздувать бинарник, так как мы переносим их в ресурсы. 
4 Передислокация или смена позиции 00:19:20
5 чел. ★ 5 $
  Напишем метод, позволяющий нам изменять состояние одной клетки, в зависимости от нашего желания, а так же научим программу заполнять красиво основную форму игры.

*Вопрос:: какие нужно провести обязательные дополнения при первом заполнении карты, для корректной игры?
5 Главный герой 00:14:58
5 чел. ★ 5 $
  На уроке мы начнем заниматься специальным классом, который будет отвечать за нашего главного героя.
Целый отдельный класс, специально созданный для одной задачи: управлением состоянием главного героя.

*Задание:: создать перечисление возможных перемещений гл. героя
6 Оно шевелится 00:30:10
5 чел. ★ 5 $
  На этом уроке мы заставим главного героя перемещаться по полю, отправляя ему команды прямо с клавиатуры.

*Задание:: написать условия, при которых гл. герою нельзя будет переходить в следующую клетку
7 Туда - нельзя, сюда - нельзя 00:23:56
5 чел. ★ 4.8 $
  Конечно же главный герой может ходить только по специальным дорожкам, не может ходить сквозь стены и пр. Как же его этому обучить?! Узнаем на этом уроке.

*Вопрос:: почему гл. герой ходит сквозь стены?
8 Никуда нельзя! 00:21:07
4 чел. ★ 5 $
  Будем дописывать процедуру проверки смежных клеток, делая перемещение гл.героя более правильным.

*Задание:: сделать плавное смещение героя при переходе сквозь стену
9 Рождение монстра 00:20:16
4 чел. ★ 5 $
  Главному герою нужно с кем-то сражаться!
Мы начнем создавать врагов и размещать их на нашей игровой карте.

*Вопрос:: можно ли использовать один класс на двоих при перемещении гл. героя и моба?
10 Каждый двигается одинаково, но по-своему 00:11:07
4 чел. ★ 5 $
  Небольшой рефакторинг никогда не помешает! На уроке мы будем реализовывать общие правила для передвижения наших персонажей.

*Задание:: заставить Моба передвигаться к опр. точке
11 Дальняя дорога 00:40:36
4 чел. ★ 4.5 $
  Создаем метод поиска пути до определенной точки.

*Задание:: написать словесное описание трех уровней сложности Моба
12 Ориентация на местности 00:15:12
3 чел. ★ 5 $
  Дописываем процедуру, помогающую найти следующую точку, в которую необходимо дойти.

*Задание:: дописать программу так, чтобы моб обходил препятствия
13 Бомба своими руками 00:20:39
3 чел. ★ 5 $
  Это же БОМБЕРМЕН!
У него должна быть БОМБА! На этом уроке мы этим и займемся! Подарим нашему бомбермену бомбочку, и у него будет возможность её установить!

*Вопрос:: где должна располагаться информация о наличии бомб? (в каких классах?)
14 Ложись, БОМБА! 00:23:47
3 чел. ★ 5 $
  Конечно же у бомбы должен быть таймер, не взрываться же ей в руках?! Будем реализовывать красоту, которая отвечает за "тиканье" бомбы.

*Вопрос:: как сообщить «наверх», что бомбе пора взорваться?
15 Ба-БАХ! 00:14:28
3 чел. ★ 5 $
  Реализовываем детонацию бомбы

*Задание:: сделать так чтобы вместо «ВЗРЫВ» писалось «Бомба активирована!»
16 Горим! 00:25:08
3 чел. ★ 5 $
  Будем реализовывать момент горения после детонации бомбы.

*Вопрос:: почему гл. герой не может наступить на место со взрывом и как это исправить?
17 Сборщик мусора 00:31:51
3 чел. ★ 5 $
  Сборщик мусора (garbage collector) - специальный процесс, периодически освобождает память, удаляя объекты, которые уже не будут востребованы приложениями.
На уроке мы более подробно познакомимся с этой формой управления памятью.

*Вопрос:: как часто запускается Сборщик мусора(автоматически)?
18 Вызывайте пожарных! 00:08:37
3 чел. ★ 5 $
  После всего сумасшествия, которое было от взрыва бомбы, необходимо прибраться и почистить. Для этого мы создадим специальных "пожарных", которые помогут нам в этом.

*Вопрос:: в какой же момент должен погибнуть гл. герой?
19 Не пойман - не вор! 00:14:15
3 чел. ★ 5 $
  Только сейчас мы приступаем к реализации окончания игры. Добавим процедуру, которая будут контролировать смерть главного героя.

*Задание:: добавить в гл. меню игры возможность выбора сложности игры
20 Три уровня сложности 00:20:15
3 чел. ★ 5 $
  Неинтересно играть с простым врагом, для этого мы добавим три уровня сложности игры, чтобы нам не заскучать на полях сражения!

*Задание:: сделать так, чтобы гл. герой поворачивался в ту сторону, в которую бежит
21 Бонусы 00:39:50
3 чел. ★ 5 $
  Бонусы! Подарки! Призы! Плюшки и Плюшечки!
Всё что душе угодно сможешь ты добавить после этого урока, а я покажу как сделать основные - бонусы, с помощью отдельного класса!

*Задание:: насладиться полученным результатом и дописать много-много приделок, которые только улучшат и украсят игру!
22 ФИНАЛЬНЫЙ УРОК без видео
3 чел. ★ 5 $
  (В этом уроке нет видео)
Приветствую!
Ты дошел до конца этого курса, до этой черты доходят немногие!
Ты уже победитель!!!
Расскажи в нескольких словах что ты узнал на курсе.
  Итого:   22 видеоурока 7 час. 26 мин.
3 чел. ★ 4.97  
  Финалисты:   DimanDOS,   Dimon,   Neverwinter 2 .

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





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

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

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

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


Научился: Вспомнил о том, как непросто записывать обзоры...
Трудности: Придумать текст и правильно его произнести. Курс получился замечательным, достаточно простым, с доходчивыми объяснениями. Я научился (правда не доконца понял, тут даже теория не помогла) пользоваться делегатами. Знаю теперь, как работает сборщик мусора. Вообще попрактиковался в использовании ООП. Вобщем - было нескучно! Спасибо Кириллу за то что решился создать свои уроки. Спасибо Игромистру за поддержку во время прохождения. Спасибо всем кто проверял мои работы. Встретимся в следующий раз уже нескоро (ухожу помогать другу в его проектах).



Научился: Научился многому, не все до конца понял.
Трудности: Извиняюсь, но видео я не записываю никогда.