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

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

Демо игры

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

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

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

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

# Название видеоурока Решило Рейтинг Доступ
1 Вступительное слово 00:20:15 1863 чел. ★ 4.8 Done
  Отчёт отправил: 7276. Ильшат Решено за 42 мин. [Показать отчёт]
Научился: Мигрировать проект с 2013 на 2015 студию. 
Сложности: Сложностей не было. Ожидал, что будут проблемы с миграцией последней программы, но все прошло успешно) 
Комментарии: Небольшая игра в жанре runner, для windows phone 8.1 на C++/DirectX11. Ожидание от видеокурсов - познакомиться с C#, получить/отточить навыки программирования. 
2 Картинка с секретом 00:53:40 1087 чел. ★ 4.9 Done
  Отчёт отправил: 7276. Ильшат Решено за 1 час. 35 мин. [Показать отчёт]
Научился: Свойствам Anchor, BackGroundImageLayout у объектов на форме, создавать иконку приложения. 
Сложности: Подобрать 5 картинок и подвести их к общему размеру. 
Комментарии: Все отлично) 
3 Лабиринт 2D - меню 00:29:13 897 чел. ★ 4.9 Done
  Отчёт отправил: 7276. Ильшат Решено за 1 час. 10 мин. [Показать отчёт]
Научился: 1)Создавать свой класс 2)Воспроизводить звуковые файлы 3)Закрывать форму с помощью Close() 
Сложности: Подобрать 4 звуковых файла из папки Media) 
Комментарии: Статические классы, C# удивляет) 
4 Лабиринт 2D - игра 00:47:49 632 чел. ★ 4.9 Done
  Отчёт отправил: 7276. Ильшат Решено за 2 час. 10 мин. [Показать отчёт]
Научился: 1) Cursor.Position; 2) Вызов форм, DialogResult; 3) Событие MouseEnter.  
Сложности: Во время создания третьего уровня, когда добавлял/удалял "ключи", "двери" и "стены" появлялись висячие указатели на несуществующие функции-обработчики. 
Комментарии: Понравилась идея использовать label для препятствий) 
5 Игра Быстрощёлк 00:25:26 675 чел. ★ 4.8 Done
  Отчёт отправил: 7276. Ильшат Решено за 40 мин. [Показать отчёт]
Научился: 1) Замерять время; 2) Познакомился с событием MouseDown. 
Сложности: Побить ваш рекорд 14 кликов в секунду:D На скриншоте показан результат "щелканья" двумя руками. 
Комментарии: Все отлично) 
6 Бот для Быстрощёлка 00:25:35 567 чел. ★ 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 450 чел. ★ 4.9 Done
  Отчёт отправил: 7276. Ильшат Решено за 2 час. 10 мин. [Показать отчёт]
Научился: Повторил работу с панелями, pictureBox, загрузкой ресурсов. Понравился способ установки видимости необходимой картинки через проверку условия. Например, picture_rock.Visible = choice == Choice.rock; 
Сложности: Все хорошо поясняется, проблем не было. 
Комментарии: Сначала я написал версию по видео уроку, поиграл, оценил. Здорово, но это скорее игра на реакцию, а не привычная "камень-ножницы-бумага". Так как игрок может видеть примерный выбор компьютера, то он имеет возможность нечестно победить. Поэтому я решил слегка изменить начальную версию программы: убрал таймер и организовал принятие решения компьютера в момент клика по одной из трех картинок. Во время модификации программы я утомился работать со строковыми представлениями картинок и режимов игры, добавил отдельный класс GameLogic. В тот момент задумался, как можно усложнить игру? Ответ пришел быстро - разные варианты генерации решений компьютером. Например, компьютер будет учитывать предыдущие ходы игрока, сохранять их в коллекцию и далее по-хитрому медитируя пытаться угадать следующий шаг. Чтобы создать задел для разных версий генераторов, использовал полиформизм, добавил интерфейс IChoiceGenerable и реализовал его в классе RandomChoiceGenerator, который (как в видео уроке) рандомно принимает решение в полуоткрытом интервале [1, 4). Версию с AI пока что делать не стал, оставил на будущее) 
8 ФИНАЛЬНЫЙ УРОК 00:01:51 410 чел. ★ 4.8 Done
  Отчёт отправил: 7276. Ильшат Решено за 20 мин. [Показать отчёт]
Научился: Вспомнил как начал заниматься на сайте. 
Сложности: Написать отзыв. 
Комментарии: Курс Наноигры - замечательный первый шаг в изучении для начинающих программистов C#. Особенность уроков в том, что изначально ставится определенная задача и уже к концу урока мы получаем законченное работающее приложение. То есть, обучение идет от практики, без начальной теории, которая возможно отпугивает большинство новичков. Теории именно столько, сколько нужно для решения задачи. Да, при таком подходе может возникнуть проблема - ученик обучается вширь - немного знаний из этой области, немного из другой, а фундаментального понимания нет. Но оно и не нужно на первой поре. Лучше сначала научиться решать простые задачи, почувствовать уверенность в с себе. Конечно, человеку с нуля будет достаточно сложно сразу разобраться с происходящим, это словно попасть в неизвестную страну, где говорят на неведомом тебе языке. Но здесь действует принцип - количество переходит в качество. Или делай как я. Новичку достаточно просто переписать код Евгений Витольдовича, порадоваться его компиляции и в результате, работающему приложению. Затем можно попробовать изменить текст надписей, цвет, фон. А дальше, совместив знания, полученные в разделе "Консоль" можно пробовать добавлять что-то от себя. В целом, я советую новичкам начать обучение на проекте с курса Наноигры, попутно решая задачи из консоли. Успехов всем!) Хужахметов Ильшат 
9 Вам телеграмма! 00:08:26 103 чел. ★ 4.8 Done
  Отчёт отправил: 7276. Ильшат Решено за 15 мин. [Показать отчёт]
Научился: Установил программу telegram. 
Сложности: Проблем не было. 
Комментарии: Все ок. 
10 VIP. Устный счёт 00:46:39 311 чел. ★ 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 видеоуроков общей продолжительностью 5 час. 06 мин. 66 чел. ★ 4.86  
  Финалисты:   Елена,   Алексей В.,   Сергей Сергеевич,   Ильшат,   Фомичева Наталья,   Петя,   Алексей Хонин,   Сергей Соколов,   Виктор Дерябин,   Сергей Лузум,   Новопашин Владимир,   Артём,   Константин,   Oleg Didok ,   Кирилл Лебедев,   Иван Воронин,   Сергей Аникин,   Виталя,   Виталий,   aleksey-k,   Сергей Д.,   Piligrim,   Сарапульцев Константин,   Михаил Ермишин,   zhikharevav,   Bazel,   zmejchik,   Сергей Стефаненко,   chip,   Denis,   Владимир,   Yuriy,   Колупаев Сергей,   Павел,   Николай Денисов,   Данил Вагнер,   kostes,   Permitin Alexey,   Иван,   Андрей,   Alexander Sidorov,   Nikolay,   Елена,   Морозов Юрий Александрович,   Bart Simpson,   Дмитрий,   Александр Р.,   Alikan,   Никита,   Rise,   Pavel,   Кирилл Шмойлов,   Vicer,   Сергей,   FireWolf,   Vladimir,   LINKI,   Владимир,   Игорь,   DimanDOS,   mouse71rus|Сергей,   Василий,   turpispopulu,   Алексей|BrisK|Кривицкий,   atomicpel,   Tekashnik .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Я ничему не научился, так как этот видео-урок не учит чему-то новому.
Трудности: На курсе "Демо-игры" у меня возникало довольно много сложностей, но главная - найти свои ошибки, которые по какой-то причине возникали. Очень важно внимание, терпение и умение читать код, в котором очень легко можно допустить ошибку или опечатку.
Меня зовут Дмитрий Михалёв. Возможно, я самый маленький на курсе, но. Дальше я буду проходить курс "Демо софт". Курс "Демо игры" мне очень понравился!
Научился: До этого никогда не писал игрушки, попробовал и мне понравилось.
Трудности: Сложным в курсе был - поиск подходящих картинок, звуков и т.д.
Курс мне понравился, все излагается доступно, понятно. Что-то я повторил, что-то изучил.