Обучение на 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
  Создаём старую добрую игру Арканоид.
Создаём меню, рисуем уровень, размещаем ракетку.
Делаем, чтобы ракетка двигалась.
Отчёт отправил: 10080. FireWolf Выполнено за 16 дней 14 час. [Показать отчёт]
Научился: Делал в WPF, так что решил, зачем мне картинка из инета, если можно сделать анимированную заставку прямо так? ))) Сделал 6 кирпичиков и поместил их в ResourceDictionary откуда или подтягиваю их свойства по таймеру со смещением для анимации заставки или заполняю по координатам для игрового поля. Ракетку двигаю по таймеру, запускаемому с нажатием клавиш лево/право и останавливаю по событии отпускания клавиш лево/право. Ещё использую фишку из C# 7.0 с дополнительными условиями фильтрации в switch - полезно для раскраски кирпичей в пределах определённых координат. Если интересно, то по ссылке https://drive.google.com/drive/folders/0B3ZnPiwGG8zpSVpXdmNsWndmSGM лежит архив Arkanoid.rar 
Сложности: Сложным было прочитать, что словарь ресурсов надо ещё вписать в App.xaml ))) 
Видеообзор: 36rgXjFy7bI
2 FREE Арканоид - Шарик и кирпичики 01:02:53
3 теста
326 чел. ★ 4.9 Done
  Делаем движение шарика, отскок его от стен и ракетки, а также выбивание кирпичиков.
Отчёт отправил: 10080. FireWolf Выполнено за 17 дней 8 час. [Показать отчёт]
Научился: Делал в WPF, так что научился двигать шарик высчитывая координаты и назначая новые для его положения в Canvas. Также научился пользоваться Dictionary,  в который внёс смещения для 8 углов шарика относительно его Canvas.Left и Canvas.Top с ключами по enum, чтобы не запутаться от каких углов в каких направлениях делать проверку столкновения и делал проверку столкновения по левому верхнему углу с примевлением смещения из Dictionary в зависимости от направления движения шарика. Ещё научился работать с углами и внёс небольшой рандомизатор отскока шарика. 
Сложности: Так как я хотел попробовать сам и сделать сразу универсальный способ, то специально не смотрел урок до конца и прошёл через несколько вариантов, начиная от самого простого с углом в пределах 0-90, вычислением смещения через Sin и Cos, указанием направления через enum (отличный простой способ для отскока от границ, но требует много преобразований для проверки пересечения граней кирпичиков) и вычислением пересечения через вычисление гипотенузы через исходное положение шарика и перпендикуляра к грани, до более универсального с Sin и Cos от углов в пределах 0 +- 360 и вычислением пересечения через перемножение векторов. Если интересно, то архив Arkanoid.rar доступен по ссылке https://drive.google.com/open?id=0B3ZnPiwGG8zpSVpXdmNsWndmSGM Код проверки столкновений у меня там не оптимизирован, а вот реализация градиента на кирппичиках в WPF может кому-то пригодиться :) 
Видеообзор: MWa-5SHSI8Y
3 Скорость реакции. Блок-схема 00:17:22
321 чел. ★ 4.8 Done
  На этом уроке мы составим блок-схему
для игры по вычислению скорости реакции.
Нам потребуются три картинки, листик и ручка.
Отчёт отправил: 10080. FireWolf Выполнено за 1 день 1 час. 4 [Показать отчёт]
Научился: Научился составлять блок-схемы :) Сначала начал описывать подробно, но схема получилась трудночитаемой, так что я убрал ненужный для алгоритмической схемы мусор вроде скобок методов и их точных цепочек вызоваю 
Сложности: Нарисовать схему, что же ещё? :) 
4 Скорость реакции. Три картинки по таймеру 00:15:28
2 теста
309 чел. ★ 4.8 Done
  На этом уроке мы подготовим форму для программы.
Установим иконку, разместим три картинки, кнопку запуска.
Напишем демо-код для переключения картинок.
Отчёт отправил: 10080. FireWolf Выполнено за 11 час. 54 мин. [Показать отчёт]
Научился: Тут всё просто и понятно, хотя я и делал в WPF. Предыдущие уроки были сложнее :) 
Сложности: Ничего :) Вот в применённых мною расчётах траектории шарика через тригонометрию и проверки столкновений в Арканоиде был хардкор, а тут даже придумать что-то этакое для добавки челленджа не выходит :( 
5 Скорость реакции. Алгоритм и рекорд 00:34:02
2 теста
289 чел. ★ 4.9 Done
  На этом уроке мы наконец-таки создадим программу
вычисления скорости реакции, следуя блок-схеме.
Напишем обработчик кнопки "Запуск", кликов по картинкам и таймера.
Даже добавить прогресс-бар для наглядности.
Отчёт отправил: 10080. FireWolf Выполнено за 7 час. 59 мин. [Показать отчёт]
Научился: Так как делал в WPF, то пытался добавить анимацию прогресс бара и изменение градиента кнопки старта при наведении и нажатии, но для этого надо переписать шаблоны используемых контролов, что требует больше XAML кода, чем вся логическая часть программы! (И всё равно не заработало! Но, надеюсь, когда-нибудь раздберусь и в этом.) 
Сложности: Если не считать тщетные попытки в эффекты и анимацию WPF, то всё остальное вообще проще простого :) 
6 Игра Цифры 00:23:10
3 теста
345 чел. ★ 4.9 Done
  На этом уроке мы напишем игрушку «Цифры».
Познакомимся с компонентом MenuStrip, и приручим кучу кнопок.
Параллельно воспользуемся конструкцией языка switch - case.

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

P. S. Рекомендую почитать: https://ru.wikipedia.org/wiki/Таблица_Шульте
Отчёт отправил: 10080. FireWolf Выполнено за 28 дней 22 час. [Показать отчёт]
Научился: Делать на WinForms мне показалось слишком скучно и я сделал под Android. Разумеется под Android не стал делать кнопки "Выход" :) А в остальном всё-то же самое. 
Сложности: 1) Сделать одинаковые кнопки в GridLayout - а мне раньше WPF казался неочевидным и переусложнённым! 2) Заставить отображаться меню - если компилировать под версии Android старше 7.0, то там для просто отображения меню есть официальный костыль(!). Скомпилировал под 5.1 и всё заработало :) 
Видеообзор: n-kL9trbPpM
7 Бот для Цифр 00:15:40
2 теста
322 чел. ★ 4.9 Done
  На этом уроке мы напишем бота для игры из прошлого урока.
Мы научим мышку быстро щёлкать по кнопкам программы из прошлого урока.

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

Отчёт отправил: 10080. FireWolf Выполнено за 5 дней 58 мин. [Показать отчёт]
Научился: Научился импортировать функции из user32.dll. Так как делал в WPF, то научился справляться с очередными сложностями создания и отображения интерфейса :) Научился синхронизировать скроллинг 2-х TextBox и создавать отсутствующий в WPF NumericUpDown из TextBox и ScrollBar :) Ещё я всё-таки сделал запись координат в List, чтобы не гонять туда-сюда преобразования из string в int. вдобавок создал структуру для целочисленной точки, чтобы хранить координаты в int, а не в double и делать преобразование один раз при получении координаты курсора. Теоретически надо добавить таймер и произвольную задержку между нажатиями и уже можно сделать бота, полезного для... не знаю для чего, но полезного :) Испытывал на игре в цифры, которую я делал по предыдущему уроку, но только под Андроид :) 
Сложности: Отследить ошибку, связанную с назначением текста при запуске программы по событию в Контрол, который сам ещё не инициализирован :) Ещё хотел сделать запись координат в TextBlock, но там слишком изощрённое создание скроллбара, так что я сделал TextBlock и запретил редактирование :) 
Видеообзор: BYMqjZfmI9o
8 ФИНАЛЬНЫЙ УРОК 00:23:23
168 чел. ★ 4.9 Done
  Задание.
Записать видеообзор любой своей программы.

Отчёт отправил: 10080. FireWolf Выполнено за 30 дней 53 мин. [Показать отчёт]
Научился: На этом курсе я потренировался в использовании делегатов и научился расчитывать пересечения шарика и кирпичиков в Арканоиде написанном под WPF, испортировать функции из user32.dll для управления координатами мышки для бота-кликера и начал пробовать свои силы в написании программ под андроид в игре с цифрами. Ещё собрался с духом для записи видео :) Написанные в рамках курса программы: 1) Арканоид - Arkanoid.rar (C# + WPF) 2) Скорость реакции - Reaction.rar (C# + WPF) 3) Игра Цифры - MobiDigits.rar (Под Андроид 5.1+. C# + Xamarin) 4) Бот для Цифр - ScreenClicker.rar (C# + WPF) Архивы исходников программ доступны по ссылке: https://drive.google.com/drive/folders/17p1RWDPMPiWib4j0gDg3yNgOwtPek-ZS 
Сложности: Собраться с духом для записи видео и решить проблему с распространённой ошибкой с отказом микрофона на ноутбуке под управлением Windows 10. 
Видеообзор: wc_CM0po10A
9 VIP урок. Игра 2048 00:08:33
57 чел. ★ 4.9 Done
  Поздравляю с окончанием курс "Наноигры".
Теперь можно немножко расслабиться и поиграть в 2048.
Мы напишем эту замечательную игру в курсе "Микроигры".

Отчёт отправил: 10080. FireWolf Выполнено за 43 мин. [Показать отчёт]
Научился: В этот раз удалось дойти только до 1024, но вообще 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


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