Курс программирования

Формула программиста
основатель — Волосатов Евгений Витольдович
Open shop Демо игры

Демо игры

Несколько простых игрушек для ознакомления с проектом.
Каждая игровая программа пишется с нуля.
Доступ к урокам последовательный.

Во время прохождения курса вы самостоятельно
напишете несколько игровых программ.

Объём: 8 видеоуроков.

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

# Название видеоурока Решило Рейтинг Доступ
1 C# чего начать программировать 00:07:44 224 чел. ★ 4.9 Free
 

Добро пожаловать!

Ты герой, раз дошёл до этой страницы :)
В этом коротком видео обращении я покажу и расскажу,
где найти обещанные уроки, консольные задачи, как этим всем пользоваться.
2 Картинка с секретом 00:53:40 1179 чел. ★ 4.9 Done
  Самая первая программа создаётся, практически, только мышкой.
Весь нужный код будет сгенерирован автоматически системой.
Смотри видео, повторяй действия и создавай свою программу!

Задание:
Написать программу с 5 картинками и 4 кнопками.
Каждая кнопка открывает одну из 4 картинок.
Пятая картинка открывается каким-либо "секретным" способом.
Отчёт отправил: 7276. Ильшат Выполнено за 1 час. 35 мин. [Показать отчёт]
Научился: Свойствам Anchor, BackGroundImageLayout у объектов на форме, создавать иконку приложения. 
Сложности: Подобрать 5 картинок и подвести их к общему размеру. 
Комментарии: Все отлично) 
3 Лабиринт 2D - меню 00:29:13 967 чел. ★ 4.9 Done
  Начинаем создание игры - многоуровнего лабиринта.
На этом уроке мы создадим главное меню и класс для воспроизведения звуков.

Задание:
Создать заготовку для будущего лабиринта.
Отчёт отправил: 7276. Ильшат Выполнено за 1 час. 10 мин. [Показать отчёт]
Научился: 1)Создавать свой класс 2)Воспроизводить звуковые файлы 3)Закрывать форму с помощью Close() 
Сложности: Подобрать 4 звуковых файла из папки Media) 
Комментарии: Статические классы, C# удивляет) 
4 Лабиринт 2D - игра 00:47:49 683 чел. ★ 4.9 Done
  На этом уроке мы создадим два уровня игры и запрограммируем их.
В игре будут предметы для собирания, ключи, двери, мигающие стены.

Задание:
Создать два или три уровня для игры Лабиринт.
Отчёт отправил: 7276. Ильшат Выполнено за 2 час. 10 мин. [Показать отчёт]
Научился: 1) Cursor.Position; 2) Вызов форм, DialogResult; 3) Событие MouseEnter.  
Сложности: Во время создания третьего уровня, когда добавлял/удалял "ключи", "двери" и "стены" появлялись висячие указатели на несуществующие функции-обработчики. 
Комментарии: Понравилась идея использовать label для препятствий) 
5 Игра Быстрощёлк 00:25:26 718 чел. ★ 4.8 Done
  На этом уроке мы создадим мини-игрушку «Быстрощёлк»,
которая поможет узнать максимальную скорость нажатия кнопок мышки.

Задание:
Создать игру и поставить свой рекорд.
Отчёт отправил: 7276. Ильшат Выполнено за 40 мин. [Показать отчёт]
Научился: 1) Замерять время; 2) Познакомился с событием MouseDown. 
Сложности: Побить ваш рекорд 14 кликов в секунду:D На скриншоте показан результат "щелканья" двумя руками. 
Комментарии: Все отлично) 
6 Бот для Быстрощёлка 00:25:35 608 чел. ★ 4.9 Done
  На этом уроке мы повеселимся :)
Напишем бота для игры из прошлого урока.
Программа будет сама кликать и ставить сногсшибательные результаты!

Задание:
Написать бота для прошлой игры и поставить супер-рекорд!
Отчёт отправил: 7276. Ильшат Выполнено за 45 мин. [Показать отчёт]
Научился: 1) Работе с компонентом TabelLayoutPanel; 2) Вызывать функции WinAPI из кода программы C# 
Сложности: track_count_Scroll(null, null) и track_time_Scroll(null, null). Понимаю, что в этих функциях мы не обрабатываем аргументы, но передавать null было неловко) 
Комментарии: Интересный урок, познакомился с компонентом TabelLayoutPanel, вызовом функции WinAPI из кода программы. Результат впечатляет, у меня есть свой бот) 
7 Камень ножницы бумага 00:47:10 481 чел. ★ 4.9 Done
  На этом уроке мы напишем игровую программу
по мотивам детской игры на руках - «Камень-Ножницы-Бумага».

Задание:
Написать игру и победить компьютер.
Отчёт отправил: 7276. Ильшат Выполнено за 2 час. 10 мин. [Показать отчёт]
Научился: Повторил работу с панелями, pictureBox, загрузкой ресурсов. Понравился способ установки видимости необходимой картинки через проверку условия. Например, picture_rock.Visible = choice == Choice.rock; 
Сложности: Все хорошо поясняется, проблем не было. 
Комментарии: Сначала я написал версию по видео уроку, поиграл, оценил. Здорово, но это скорее игра на реакцию, а не привычная "камень-ножницы-бумага". Так как игрок может видеть примерный выбор компьютера, то он имеет возможность нечестно победить. Поэтому я решил слегка изменить начальную версию программы: убрал таймер и организовал принятие решения компьютера в момент клика по одной из трех картинок. Во время модификации программы я утомился работать со строковыми представлениями картинок и режимов игры, добавил отдельный класс GameLogic. В тот момент задумался, как можно усложнить игру? Ответ пришел быстро - разные варианты генерации решений компьютером. Например, компьютер будет учитывать предыдущие ходы игрока, сохранять их в коллекцию и далее по-хитрому медитируя пытаться угадать следующий шаг. Чтобы создать задел для разных версий генераторов, использовал полиформизм, добавил интерфейс IChoiceGenerable и реализовал его в классе RandomChoiceGenerator, который (как в видео уроке) рандомно принимает решение в полуоткрытом интервале [1, 4). Версию с AI пока что делать не стал, оставил на будущее) 
8 ФИНАЛЬНЫЙ УРОК 00:01:51 435 чел. ★ 4.8 Done
  Поздравляю!
Ты прошёл весь курс "Демо-игры"!
Теперь ты знаешь, как у нас здесь всё устроено.

Пожалуйста, напиши отзыв,
прикрепи свою фотографию и напиши своё имя и фамилию.

Какой курс ты будешь проходить следующим?
Отчёт отправил: 7276. Ильшат Выполнено за 20 мин. [Показать отчёт]
Научился: Вспомнил как начал заниматься на сайте. 
Сложности: Написать отзыв. 
Комментарии: Курс Наноигры - замечательный первый шаг в изучении для начинающих программистов C#. Особенность уроков в том, что изначально ставится определенная задача и уже к концу урока мы получаем законченное работающее приложение. То есть, обучение идет от практики, без начальной теории, которая возможно отпугивает большинство новичков. Теории именно столько, сколько нужно для решения задачи. Да, при таком подходе может возникнуть проблема - ученик обучается вширь - немного знаний из этой области, немного из другой, а фундаментального понимания нет. Но оно и не нужно на первой поре. Лучше сначала научиться решать простые задачи, почувствовать уверенность в с себе. Конечно, человеку с нуля будет достаточно сложно сразу разобраться с происходящим, это словно попасть в неизвестную страну, где говорят на неведомом тебе языке. Но здесь действует принцип - количество переходит в качество. Или делай как я. Новичку достаточно просто переписать код Евгений Витольдовича, порадоваться его компиляции и в результате, работающему приложению. Затем можно попробовать изменить текст надписей, цвет, фон. А дальше, совместив знания, полученные в разделе "Консоль" можно пробовать добавлять что-то от себя. В целом, я советую новичкам начать обучение на проекте с курса Наноигры, попутно решая задачи из консоли. Успехов всем!) Хужахметов Ильшат 
9 VIP. Устный счёт 00:46:39 333 чел. ★ 4.9 Done
  На этом уроке мы напишем программу для тренировки устного счёта.

Задание:
Сделать тренажёр устного счёта по основным арифметическим операциям.
Отчёт отправил: 7276. Ильшат Выполнено за 3 час. 15 мин. [Показать отчёт]
Научился: То что высота компонента TextBox зависит только от размера выводимого шрифта. 
Сложности: Проблем как таковых по уроку не было, я их сам себе создал, когда решил добавить абстракцию выбранной операции(сложение, вычитание и т.д.) Достаточно долгое время работал над интерфейсом программы. 
Комментарии: В уроке понравился способ генерации чисел для операции деления, где a = random.Next(1, 10); b = random.Next(1, 10); first_arg = a * b; second_arg = b; В итоге получаем, что результат деления всегда получается целый. От себя добавил, хм, много чего. Изменил интерфейс, освежил в памяти свои давние знания по GroupBox, RadioButton. Добавил операцию "остаток от деления". Заменил текстовое поле диапазона генерируемых чисел на три RadioButton (уровни сложности). Добавил таймер обратного отсчета, дифференцировал результат сдачи теста по оценкам (учитывая затраченное время на прохождение). Кроме того, при запуске теста "наглым образом" уменьшаю высоту окна, чтобы скрыть настройки и добавить сверху информационные поля (см. на скриншотах). Добавил кнопку отмены теста, поработал с выводом MessageBox при различных результатах работы программы: тест успешно пройден на оценки 5, 4, 3, тест не пройден (по ошибке), тест не пройден (время истекло). В целом, чудненько, работа с интерфейсом затягивает, хочется добавить что-нибудь эдакое) По коду. В принципе, модификаций не очень много. Решил поиграться, выделить операцию в отдельную абстракцию - BinaryFunction. Сделал ее в виде абстрактного класса, от которого наследовал классы Plus, Minus, Mult, Div, Modulo. Для управления всем этим добром, и с учетом необходимости постоянной генерации случайных аргументов функции, добавил "драйвер" - класс BinaryCalculation. Этот класс создает нужный экземпляр класса BinaryFunction в момент нажатия на кнопку "Начать тест" и затем каждый раз обращается за результатом работы функции в момент нажатия пользователем кнопки Enter на поле ввода ответа. Хотел абстрагироваться еще дальше, добавить класс UnaryFunction (например для вычисления факториала), потом TernaryFunction, а потом вообще замахнулся на вычисление сложных, вложенных выражений. Задумался, а зачем? Программа создается с целью проверки устного счета, поэтому остановился на одном классе BinaryFunction. В целом, здорово позанимался, я доволен. Спасибо, Евгений Витольдович) 
10 VIP. Бесплатная консультация 9 чел. ★ 5 ^
  Приглашение на бесплатную консультацию.
  Итого:   10 видеоуроков общей продолжительностью 4 час. 45 мин. 8 чел. ★ 4.89  
  Финалисты:   Евгений,   Oleg Didok ,   Иван Воронин,   Tekashnik,   LINKI,   vip,   zhikharevav,   Виктор .

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




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Посмотрел еще раз на ранее сделанные работы, оценил что еще необходимо изучить в рамках пройденного материала.
Трудности: Найти время сначала просмотреть урок с бумажкой в руках, затем повторно смотря урок набирать код и тестировать программу
Очень хороший обучающий курс для начинающих программистов, где можно рассмотреть азы программирования на языке C#, а поскольку видеоуроки написаны в живую без сухой теории (особенно про фигу в камень-ножницы-бумага) смотреть их весьма интересно. Спасибо за проект. Следующий курс согласно порядка - Наноигры. С уважением, Аникин Сергей.
Ситников Роман Следующий курс буду проходить "БД - Управление гостиницей", а после "Сетевые технологии".