Обучение на c#

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

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Какие программы я хочу написать




Клуб формулистов - Ежемесячная подписка

Вступление в Клуб Формулистов на выгодных условиях для НОВЫХ участников.

После взноса  999  499 руб. вы получите подписку
в Клуб Формулистов на 30 дней и 256 байт для быстрого старта.
Байты используются для открытия более одного урока в день, по 50 байт за урок.

Стоимость 1 дня за первый месяц: всего 16 рублей.

Первый взнос - 499 руб./30 дней.

Через 30 дней будет списано 3,000 2,400 руб.
за продление подписки в Клуб на 30 дней + подарок 512 байт.

Так будет продолжаться каждые 30 дней, пока вы не отмените подписку.
Средства будет автоматически считываться с вашей карты.
Вы в любой момент сможете отказаться от продления Клуба.

Только ДО КОНЦА НЕДЕЛИ -
-50% скидка на первый взнос, всего 499 (вместо 999) рублей!
-20% скидка на ЕЖЕМЕСЯЧНЫЙ платёж!
Всего 2400 руб/месяц (вместо 3000 руб/месяц), или 80 руб./день - цена чашки кофе.


Стоимость 1 дня: 80 руб.

Хочу вступить!

Также есть другие варианты оплаты участия в КФ:

Билет в клуб формулистов на ...
30+ дней | 60 дней | 150 дней | 380 дней | 1000 дней

Внимание!
Стоимость участия в Клубе формулистов увеличивается 1 числа каждого месяца на 100 рублей.
При оформления подписки стоимость остаётся постоянной, пока подписка не будет отменена.







Первый взнос - 499 руб./30 дней + 500 байт.
Последующие взносы - 3,000 2400 руб./месяц + 512 байт.



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

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 FREE Арканоид - Уровень и ракетка 00:50:25
5 тестов
421 чел. ★ 4.9 Done
  Создаём старую добрую игру Арканоид.
Создаём меню, рисуем уровень, размещаем ракетку.
Делаем, чтобы ракетка двигалась.
Отчёт отправил: 16799. Андрей Чуприков Выполнено за 3 час. 10 мин. [Показать отчёт]
Научился: Это один из самых первых видеоуроков. Но для его выполнения уже нужна хорошая подготовка и понимание. А значит выполнение следующих уроков даст высокий уровень подготовки, который необходим для работы. Повторил и научился следующему: задание фона формы создание и вызов дочерней формы в модальном виде добавление иконки к форме + встраивание в exe-файл через свойство проекта обработка событий KeyDown и KeyPress:   чем отличаются     KeyPress - и нажали, и отпустили,     KeyDown - больше свойств; подходит для игры - здесь обработка нажатия   расчёт координат элемента управления на форме перемещение элемента на форме с помощью Point   например: p.Location = new Point(x, y); 
Сложности: В принципе, не было больших сложностей. Но из того, что делали, наиболее сложное (и интересное): это во время написания пунктов работы будущей программы - мысленно представить её структуру в виде взаимосвязанных частей кода. 
2 FREE Арканоид - Шарик и кирпичики 01:02:53
3 теста
326 чел. ★ 4.9 Done
  Делаем движение шарика, отскок его от стен и ракетки, а также выбивание кирпичиков.
Отчёт отправил: 16799. Андрей Чуприков Выполнено за 1 день 17 час. [Показать отчёт]
Научился: Интересна ключевая роль таймера в работе программы:   Фактически - здесь таймер это движок для шарика, поскольку последовательно вызывает   функцию перемещения шарика. Этот движок включается клавишей Enter. Интересно то, что здесь - во второй части после первой части - уже можно предположить следующие действия по написанию кода. Поскольку, есть аналогия движения ракетки (из уже пройденной первой части) и движения шарика (в этой второй части). Понравилось представление одного пункта - например, пункта "Алгopитм oтcкoка от paкетки" - в виде отдельных составляющих и их связей между ними. Например, отдельные координаты bx1, bx0 и bx шарика связаны с координатами ракетки. И угол отскока определяется тем, какая из координат активна в момент касания ракетки. Таким образом, задача наглядно разделена на простые составляющие. Понравился способ закрытия модального окна: DialogResult = System.Windows.Forms.DialogResult.Abort или Оk; - это кратко и рационально, но об этом надо знать. Понравилось использование рандомайзера в игре - static Random rand = new Random(); Своё: Добавил метку для подсчёта выбитых кирпичиков.  
Сложности: Осознанно пройти от начала и до конца - всё-таки урок достаточно продолжительный.  
3 Скорость реакции. Блок-схема 00:17:22
321 чел. ★ 4.8 Done
  На этом уроке мы составим блок-схему
для игры по вычислению скорости реакции.
Нам потребуются три картинки, листик и ручка.
Отчёт отправил: 16799. Андрей Чуприков Выполнено за 6 час. 51 мин. [Показать отчёт]
Научился: Думаю, что это полезно и правильно: перед началом написания программы изложить на бумаге то, какими видятся её компоненты и алгоритм работы еще до написания. И потом в процессе разработки это, скорее всего, будет скорректировано и улучшено. 
Сложности: Из всего, что было: терпеливо вычертить правильную схему 
4 Скорость реакции. Три картинки по таймеру 00:15:28
2 теста
309 чел. ★ 4.8 Done
  На этом уроке мы подготовим форму для программы.
Установим иконку, разместим три картинки, кнопку запуска.
Напишем демо-код для переключения картинок.
Отчёт отправил: 16799. Андрей Чуприков Выполнено за 6 час. 36 мин. [Показать отчёт]
Научился: Научился: добавление ресурсов (картинок) в приложение через свойство проекта использование элемента PictureBox добавление картинок в PictureBox с использованием режима "изменение размера", чтоб вписать картинку в PictureBox использование таймера для визуального эффекта 
5 Скорость реакции. Алгоритм и рекорд 00:34:02
2 теста
289 чел. ★ 4.9 Done
  На этом уроке мы наконец-таки создадим программу
вычисления скорости реакции, следуя блок-схеме.
Напишем обработчик кнопки "Запуск", кликов по картинкам и таймера.
Даже добавить прогресс-бар для наглядности.
Отчёт отправил: 16799. Андрей Чуприков Выполнено за 5 дней 1 час. 5 [Показать отчёт]
Научился: Понравилось: использование одной (!) функции события по нажатию сразу на одну из трех картинок. работа с секундомером Stopwatch использование таймера - в том числе и при расчетах следующего появления картинки Чтоб прогресс-бар работал плавно (красивее) можно каждый раз увеличивать его не с шагом 1. А, например, с шагом 100. Для этого делаем:         progress.Maximum = total_clicks * 100; // можно 100 в виде отдельной переменной добавить         private void NextClick()         {             ...             click_nr += 100;             ...         }         private void picture1_Click(object sender, EventArgs e)         {             ...             NextClick();             progress.Value = click_nr; // плавно идет прогресс-бар         }   
Сложности: Побить рекорд Евгения... Так и не побил) 
6 Игра Цифры 00:23:10
3 теста
345 чел. ★ 4.9 Done
  На этом уроке мы напишем игрушку «Цифры».
Познакомимся с компонентом MenuStrip, и приручим кучу кнопок.
Параллельно воспользуемся конструкцией языка switch - case.

Задание:
Создать программу с 9 кнопками, которые нужно нажимать по порядку.

P. S. Рекомендую почитать: https://ru.wikipedia.org/wiki/Таблица_Шульте
Отчёт отправил: 16799. Андрей Чуприков Выполнено за 3 дня 8 час. 14 мин. [Показать отчёт]
Научился: Интересно и понравилось: - работа с MenuStrip - задавать горячие клавиши в MenuStrip - использование tableLayoutPanel для упорядочивания кнопок Понравилась, что одновременно задаются свойства всех кнопок при их совместном выделении (Dock, Text, Margin и пр). И функция обработчика события единая для кликов на всех кнопках. Интересна функция, внутри которой оператор switch ... case, и которая по индексу возвращает нужный контрол (!) - контрол "кнопка". Понравилось приведение типа "object" к "Button" с последующим извлечением свойства -> ((Button)sender).Text или ((Button)sender).Visible; 
Сложности: Сложностей особых не было. Игрушка понравилась. Её можно дать поиграть трехлетнему ребенку - хороша для изучения цифр.  
7 Бот для Цифр 00:15:40
2 теста
322 чел. ★ 4.9 Done
  На этом уроке мы напишем бота для игры из прошлого урока.
Мы научим мышку быстро щёлкать по кнопкам программы из прошлого урока.

Задание:
Написать бота для игры из прошлого урока.
Придумать, для чего можно использовать эту программу.

Отчёт отправил: 16799. Андрей Чуприков Выполнено за 11 час. 4 мин. [Показать отчёт]
Научился: Интересна идея - программное управление мышкой для нажатия на кнопок. Думаю, что этим можно воспользоваться для решения определенных задач. Интресна реализация идеи - сначалоа сохранить координаты мышки и потом воспроизвести их. Узнал про  " + Environment.NewLine". А я раньше всегда писал " + \n\r") Узнал, что к тексту в TextBox можно обращаться как к массиву через свойство Lines: for (int i = 0; i < text_x.Lines.Length; i++) {     x = Convert.ToInt16(text_x.Lines[i]);     y = Convert.ToInt16(text_y.Lines[i]); } Понравилось использование события mouse_event для имитации клика мышки -> to simulate mouse click in c#:) Думаю, что применить эту программу можно там где надо выполнить стандартную последовательность кликов на форме или в броузере. Можно добавить к каждому клику ввод с клавиатуры - и тогда можно формы автоматически заполнять. Например, ввести пароль. 
Сложности: Урок интересен тем, что продолжает предыдущий урок. И эти два урока теперь воспринимаются целиком. 
8 ФИНАЛЬНЫЙ УРОК 00:23:23
168 чел. ★ 4.9 Done
  Задание.
Записать видеообзор любой своей программы.

Отчёт отправил: 16799. Андрей Чуприков Выполнено за 6 дней 11 час. 6 мин. [Показать отчёт]
Научился: Пользоваться программой oCam, записывать видео и размещать его на youtube. 
Сложности: Я записывал и размещал видео в первый раз. Старался внимательно изучить - как это делается. Спасибо Евгению за подробное описание! 
Видеообзор: ZcqcQLh5WcY
9 VIP урок. Игра 2048 00:08:33
57 чел. ★ 4.9 Open
  Поздравляю с окончанием курс "Наноигры".
Теперь можно немножко расслабиться и поиграть в 2048.
Мы напишем эту замечательную игру в курсе "Микроигры".
  Итого:   9 видеоуроков 4 час. 10 мин.
17 тестов
55 чел. ★ 4.88  
  Финалисты:   Сергей,   Николай Денисов,   Progresir,   WildOrc,   Dmitry Sinitsin,   Chip,   Bodrik_torf,   zhikharevav,   Виталий,   Иван Воронин,   Андрей,   Алексей|BrisK|Кривицкий,   Денис,   Андрей Шевченко,   Protos,   Никита,   Иван,   Владимир,   Юрий,   Константин Мельников,   Михаил,   OloloCode,   Александр,   Tekashnik,   Дмитрий,   Евгений,   Dima,   Salamatory,   Snepper,   Морозов Юрий Александрович,   Oleksandr,   superGrover,   Никита,   Новопашин Владимир,   Сергей Соколов,   Александр,   Александр Балбашов,   FireWolf,   Максим Лапшинов,   Denis,   AlliZzeN,   Кирилл,   ser2018,   DimanDOS,   Permitin Alexey,   Алексей В.,   vip,   Дмитрий,   Артём Нагорный,   no name,   ES35,   MaxB,   Konstantin,   Tim,   Tom .

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





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

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

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

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


Научился: Писать видеообзор на созданную программу и загружать видео на youtube
Трудности: Заставить себя сделать это)))
Огромное спасибо Евгению за предоставленные ресурсы!!!
Смотреть видеозапись: http://www.youtube.com/watch?v=UeR-2KYtptw&feature=youtu.be


Научился: Попробовал записать видеообзор, это конечно занимательный процесс )
Трудности: Нужно тщательней готовиться