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

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

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

Демо игры

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

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

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

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

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

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

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

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

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

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

Задание:
Создать игру и поставить свой рекорд.
Отчёт отправил: 7276. Ильшат Выполнено за 40 мин. [Показать отчёт]
Научился: 1) Замерять время; 2) Познакомился с событием MouseDown. 
Сложности: Побить ваш рекорд 14 кликов в секунду:D На скриншоте показан результат "щелканья" двумя руками. 
Комментарии: Все отлично) 
6 Бот для Быстрощёлка 00:25:35
700 чел. ★ 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
1 тест
564 чел. ★ 4.9 Done
  На этом уроке мы напишем игровую программу
по мотивам детской игры на руках - «Камень-Ножницы-Бумага».

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

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

Какой курс ты будешь проходить следующим?
9 VIP. Устный счёт 00:46:39
2 теста
389 чел. ★ 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. Бесплатная консультация без видео
68 чел. ★ 4.8 ^
  Приглашение на бесплатную консультацию.
  Итого:   10 видеоуроков 4 час. 45 мин.
19 тестов
67 чел. ★ 4.89  
  Финалисты:   Евгений,   Oleg Didok ,   Иван Воронин,   Tekashnik,   LINKI,   vip,   zhikharevav,   Виктор,   Protos,   Алексей В.,   Ramzan,   Александр,   alexmail19Q,   Степан,   Вова Завісляк,   Андрей,   Владимир,   Snepper,   Александр Балбашов,   Сергей Соколов,   gorynych,   Кирилл,   Hofflin,   FireWolf,   DimanDOS,   Айдар,   AlliZzeN,   Rise,   Павел Демьянов,   Никита,   Den Andreevich,   Stainlessrat,   Макс Тимашков,   Николай,   Chip,   Дмитрий,   Сергей,   Владимир,   Даниил Лаутеншлегер,   Никита,   New programist,   Геннадий Кравцов,   Артём Нагорный,   no name,   Андрей,   Діма,   Эльвир,   Александр,   Николай,   Евгений,   Новопашин Владимир,   Xa4_Xakum,   Кирилл,   Shahlo,   Anatoli,   Konstantin,   MaxB,   Эдуард,   Толстых Александр,   AndreyGr,   София,   Иван,   Tom,   Alina,   Tim,   Хоанг,   Антон .

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





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

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

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

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


Трудности: Придумать текст)))
Здравствуйте! Меня зовут Андрей Лановой. Я только недавно захотел писать на с#, я совсем незнаю ни одного языка программирования и пройдя этот начальный видеокурс я многому научился. Благодаря отличному наставнику Волосатову Евгению Витольдовичу всё очень здОрово получается и пишется. Спасибо за Ваш труд!!! Я торопиться не буду и хочу пройти все бесплатные видеокурсы по порядку, а потом видно будет. Моя мечта написать хорошую игру и выложить её в гугл плей. Надеюсь с помощью сайта videosharp.info осуществить задуманное!!!


Научился: Хороший сайт с большим количеством видео уроков по созданию игр, программ на языке программирования C#. На сайте есть много задач по программированию и упражнений по набору текста. Иван Иванов.