C# обучение для чайников

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

основатель — Волосатов Евгений Витольдович

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

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

После взноса  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:02:13
1 тест
109 чел. ★ 4.8 Done
  Мы начинаем создание легендарной игровой программы
"Сапёр" на языке программирования Java.

Отчёт отправил: 19022. Олег Чудновский Выполнено за 5 мин. [Показать отчёт]
Научился: JDK  и IntelliJ IDEA - уже установленны скачал и подготовил файлы картинок 
Сложности: все понятно 
2 FREE Простое окно 00:03:02
96 чел. ★ 4.9 Done
  На этом уроке мы начинаем новый проект
и создадим JFrame приложение.
Отчёт отправил: 19022. Олег Чудновский Выполнено за 22 мин. [Показать отчёт]
Научился: создали: проект,  класс JavaSweeper, код для запуска JFrame 
Сложности: все понятно 
3 Закрытие на выходе 00:03:00
91 чел. ★ 4.9 Done
  На этом уроке мы настроим JFrame приложения.
Для этого пропишем необходимые параметры.

Отчёт отправил: 19022. Олег Чудновский Выполнено за 37 мин. [Показать отчёт]
Научился: создали конструктор JavaSweeper, сделали необходимые настройки окна программы 
Сложности: все понятно 
4 Полёт над классом 00:03:53
89 чел. ★ 4.8 Done
  На этом слайде мы обсудим все поля и методы основного класса нашей запускаемой игры JavaSweeper, который наследуется от JFrame
Отчёт отправил: 19022. Олег Чудновский Выполнено за 7 мин. [Показать отчёт]
Научился: Самым интересным, мне показалася контроллер Game game, который будет управлять игрой 
Сложности: все понятно 
5 Пустая панель 00:02:33
88 чел. ★ 4.9 Done
  На этом слайде мы добавим на нашу форму панель, установим ее размер и разместим ее по центру экрана
Отчёт отправил: 19022. Олег Чудновский Выполнено за 8 мин. [Показать отчёт]
Научился: добавил панель на форму и установил размеры панели 
Сложности: все понятно 
6 Раздельная инициализация 00:02:23
88 чел. ★ 4.9 Done
  На этом слайде мы займемся рефакторингом. Мы не будем добавлять новой функциональности, а просто красиво оформим то, что уже есть.
Отчёт отправил: 19022. Олег Чудновский Выполнено за 5 мин. [Показать отчёт]
Научился: сделали рефакторинг кода 
Сложности: все понятно 
7 Метод рисования 00:01:59
88 чел. ★ 4.9 Done
  На этом слайде мы наконец-то начнем рисовать. Создадим Paint-компонент для отображения рисунков на нашей панели и на форме.
Отчёт отправил: 19022. Олег Чудновский Выполнено за 5 мин. [Показать отчёт]
Научился:   Создали метод paintComponent и нарисовали линию 
Сложности: все понятно 
8 Импорт картинок 00:01:22
86 чел. ★ 4.9 Done
  На этом слайде мы добавим в наш проект картинки, которые потом будем показывать на панели во время игры.
Отчёт отправил: 19022. Олег Чудновский Выполнено за 53 мин. [Показать отчёт]
Научился: добавили картинки в папку рессурсов 
Сложности: все понятно 
9 Загрузка и отображение 00:02:13
86 чел. ★ 4.9 Done
  На этом слайде мы выведем картинку на панель
Отчёт отправил: 19022. Олег Чудновский Выполнено за 16 мин. [Показать отчёт]
Научился: вывели картинку в окне приложения 
Сложности: все понятно 
10 Угловая бомба 00:01:31
85 чел. ★ 4.9 Done
  На этом слайде мы добавим еще пару картинок на нашу форму.
Отчёт отправил: 19022. Олег Чудновский Выполнено за 5 мин. [Показать отчёт]
Научился: переписали ф-цию  getImage и вывели на экран 4 картинки 
Сложности: все понятно 
11 Константные размеры 00:02:42
85 чел. ★ 4.9 Done
  На этом слайде мы добавим константы и немножко порефакторим.
Отчёт отправил: 19022. Олег Чудновский Выполнено за 7 мин. [Показать отчёт]
Научился: Добавили константы IMAGE_SIZE, COLS и ROWS в проект, и переписали вызов игрового поля 
Сложности: все понятно 
12 Перечисление кубиков 00:03:42
85 чел. ★ 4.9 Done
  На этом слайде мы создадим перечисление Box
Отчёт отправил: 19022. Олег Чудновский Выполнено за 8 мин. [Показать отчёт]
Научился: создали  перечисление Box 
Сложности: все понятно 
13 Первый цикл 00:01:59
85 чел. ★ 4.9 Done
  На этом слайде мы выведем все картинки на форме
Отчёт отправил: 19022. Олег Чудновский Выполнено за 11 мин. [Показать отчёт]
Научился: Создали цикл и вывели все картинки  из перечисления в окно программы 
Сложности: все понятно 
14 Картинка в кубике 00:03:45
84 чел. ★ 4.9 Done
  На этом слайде мы поместим картинку в каждый экземпляр перечисления Box.

Отчёт отправил: 19022. Олег Чудновский Выполнено за 25 мин. [Показать отчёт]
Научился: добавили в перечисление публичное поле Написали функцию setImages Поместитили картинку в каждый экземпляр перечисления Box 
Сложности: все понятно 
15 Источник ресурсов 00:01:53
79 чел. ★ 4.9 Done
  На этом слайде мы сделаем загрузку картинок через систему ресурсов в языке Java
Отчёт отправил: 19022. Олег Чудновский Выполнено за 6 мин. [Показать отчёт]
Научился: Назначили папку res - как корень ресурсов опредилили переменную filename с именем картинки 
Сложности: все понятно 
16 Запускаемый jархив 00:02:55
73 чел. ★ 5 Done
  На этом слайде мы создадим запускаемый JAR-архив для нашей программы

Примечание.
При попытке запуска jar на линуксе появляется сообщение "is not marked as executable".
Необходимо запускать архив из командной строки:
  java -jar JavaSweeper.jar
Либо разрешить исполнение этого файла, чтобы запускать по клику мышкой:
 chmod +x JavaSweeper.jar

Отчёт отправил: 19022. Олег Чудновский Выполнено за 24 мин. [Показать отчёт]
Научился: Выполнили команду Build Artifacts и получили jar файл проэкта Создали запускаемый jar архив программы 
Сложности: все понятно 
17 Карта классных сокровищ 00:04:48
70 чел. ★ 4.9 Done
  На этом слайде мы разберем UML-схему нашего проекта
Отчёт отправил: 19022. Олег Чудновский Выполнено за 1 день 12 час. 55 мин. [Показать отчёт]
Научился: нарисовали архитектуру проекта 
Сложности: пока не все понятно по схеме, нужно смотреть дальше 
18 Наши координаты 00:03:24
65 чел. ★ 5 Done
  На этом слайде мы создадим класс Coord и задействуем его в нашей программе
Отчёт отправил: 19022. Олег Чудновский Выполнено за 9 мин. [Показать отчёт]
Научился: Создали класс Coord, добавить в него переменные и пользовательский конструктор 
Сложности: все понятно 
19 Статичная граница 00:03:12
65 чел. ★ 4.9 Done
  На этом слайде мы создадим класс Ranges, который будет использоваться во многих классах нашего проекта и позволит задавать глобальные параметры и перебор всех координат.
Отчёт отправил: 19022. Олег Чудновский Выполнено за 14 мин. [Показать отчёт]
Научился: ознакомился с классом Ranges 
Сложности: все понятно 
20 Установка размеров 00:04:22
64 чел. ★ 4.9 Done
  На этом слайде мы создадим класс Range с двумя статичными методами для установки и получения размеров нашего поля.
Отчёт отправил: 19022. Олег Чудновский Выполнено за 14 мин. [Показать отчёт]
Научился: Добавили класс Ranges с полями и методами доступа 
Сложности: все понятно 
21 Полный список 00:04:28
60 чел. ★ 5 Done
  На этом слайде мы добавим в класс Range список всех координат нашего поля и будем его использовать для перебора всех клеток
Отчёт отправил: 19022. Олег Чудновский Выполнено за 40 мин. [Показать отчёт]
Научился: Добавили список координат поля, написали Геттер к ниму, вывели поле 9х9 с рисунком 
Сложности: все понятно 
22 Радуга картинок 00:03:18
57 чел. ★ 4.9 Done
  На этом слайде мы добавим иконку нашей программе и немножко пошалим с отображением картинок на экране
Отчёт отправил: 19022. Олег Чудновский Выполнено за 7 мин. [Показать отчёт]
Научился: Установить иконку на окно приложения вывели радугу картинок в окне приложения 
Сложности: все понятно 
23 Фасадный класс 00:02:05
57 чел. ★ 4.9 Done
  На этом слайде мы начнем создавать фасадный класс Game и напишем первые два метода этого класса

Отчёт отправил: 19022. Олег Чудновский Выполнено за 44 мин. [Показать отчёт]
Научился: как я понял, фасадный класс обслуживает работу приложения 
Сложности: все понятно 
24 Игровая координата 00:04:07
57 чел. ★ 4.9 Done
  На этом слайде мы создадим класс Game и реализуем в нем конструктор, а также метод getBox(), который по заданным координатам возвращает, что должно быть в указанной клетке нашего поля.
Отчёт отправил: 19022. Олег Чудновский Выполнено за 19 мин. [Показать отчёт]
Научился: Создали класс Game с конструктороми реализовали метод getBox() 
Сложности: все понятно 
25 Матрица мира 00:04:32
56 чел. ★ 4.9 Done
  На этом слайде мы создадим класс Matrix для хранения всех элементов нашего игрового поля
Отчёт отправил: 19022. Олег Чудновский Выполнено за 12 мин. [Показать отчёт]
Научился: создали класс Matrix, и записалу функцию старта игры с инициализацией поля пустыми клетками 
Сложности: все понятно 
26 За гранью видимого 00:04:49
55 чел. ★ 4.9 Done
  На этом слайде мы добавим в класс Matrix два метода - геттер и сеттер для получения и установки полей нашей игры
Отчёт отправил: 19022. Олег Чудновский Выполнено за 15 мин. [Показать отчёт]
Научился: Добавили в класс Matrix два метода - геттер и сеттер, вывели на экран , отруки, ход игры 
Сложности: все понятно 
27 Бомбанутый класс 00:02:55
53 чел. ★ 5 Done
  На этом слайде мы поговорим о классе Bomb, который будет использоваться для хранения нижнего слоя нашего поля, где находятся бомбы и числа вокруг них
Отчёт отправил: 19022. Олег Чудновский Выполнено за 9 мин. [Показать отчёт]
Научился: Написать, как вы понимаете значение класса Bomb: этот класс занимается диспечеризацией и обслуживанием игрового поля , нижнего уровня , бомбами - карта бомб, информация об общем кол-ве бомб,  контроль допустимого максимального кол-ва бомб, занимаеся размещением бомб 
Сложности: все понятно 
28 Тестовая бомба 00:05:11
54 чел. ★ 5 Done
  На этом слайде мы начнем создавать класс Bomb
Отчёт отправил: 19022. Олег Чудновский Выполнено за 13 мин. [Показать отчёт]
Научился: добавили класс Bomb, создали конструктор и создали геттер 
Сложности: все понятно 
29 Случайные бомборазмещения 00:04:35
54 чел. ★ 5 Done
  На этом слайде мы разместим бомбы в случайных местах на нашей карте
Отчёт отправил: 19022. Олег Чудновский Выполнено за 2 дня 13 час. 19 мин. [Показать отчёт]
Научился: Создали метод placeBomb, и в случайном порядке разместили бомбы на карте 
Сложности: все понятно 
30 Сравнение координат 00:03:09
53 чел. ★ 5 Done
  На этом слайде мы исправим несколько ошибок и добавим в класс Coord метод для сравнения двух координат
Отчёт отправил: 19022. Олег Чудновский Выполнено за 9 мин. [Показать отчёт]
Научился: Добавили метод сравнения двух координат, теперь у нас случайные бомбы не накладываются друг на друга 
Сложности: все понятно 
31 Ограда из единиц 00:06:29
53 чел. ★ 4.9 Done
  На этом слайде мы научимся проставлять единицы вокруг каждой бомбы
Отчёт отправил: 19022. Олег Чудновский Выполнено за 21 мин. [Показать отчёт]
Научился: Добавили функцию, которая будет перебирать все клетки вокруг заданной и вывели на экран бомбы и значения кол-ва бомб 
Сложности: все понятно 
32 Следующая цифра 00:04:16
51 чел. ★ 5 Done
  На этом слайде мы будем увеличивать цифры вокруг каждой новой размещенной бомбы
Отчёт отправил: 19022. Олег Чудновский Выполнено за 1 день 13 час. 40 мин. [Показать отчёт]
Научился: Добавили метод, возвращающий следующий боксик,  и обработку правильного рисования кол-ва бомб вокруг бомбы 
Сложности: все понятно 
33 Дважды в одну воронку 00:05:52
49 чел. ★ 5 Open
  На этом слайде мы исключим попадание двух бомб в одну воронку
34 Флаг над классом 00:09:18
48 чел. ★ 5 $
  На этом слайде мы перейдем к верхнему уровню нашей абстракции - классу Flag.
35 Королевская траншея 00:05:02
48 чел. ★ 5 $
  На этом слайде мы создадим методы start() и get() в класс Flag.
36 Клавишные инструменты 00:04:16
48 чел. ★ 5 $
  На этом слайде мы создадим два метода в классе Game - pressLeftButton() и pressRightButton()
37 Мышечный адаптер 00:06:27
47 чел. ★ 5 $
  На этом слайде мы, наконец, добавим интерактив в нашу программу и зарегистрируем адаптер мыши для опроса левой и правой кнопки.
38 Схема правой педали 00:02:24
47 чел. ★ 5 $
  На этом слайде мы разберем алгоритм нажатия правой кнопки мышки в игре JavaSweeper
39 Смена флагов 00:03:36
47 чел. ★ 5 $
  На этом слайде мы реализуем установку и удаление флажков и напишем реализацию функции pressRightButton()
40 Добро пожаловать! 00:04:24
47 чел. ★ 5 $
  На этом слайде мы добавим строчку состояния в нашу программу
41 Недетские состояния 00:02:52
47 чел. ★ 5 $
  На этом слайде мы создадим перечисление GameState, в котором будет храниться состояние игры
42 Актуальное информирование 00:06:07
47 чел. ★ 5 $
  На этом слайде мы сформируем сообщение о текущем статусе игры в зависимости от текущего состояния и выведем его на экран
43 Алгоритм открывашки 00:07:43
47 чел. ★ 5 $
  На этом слайде мы займемся обработкой нажатия левой кнопки мышки
44 Выбор из выбора 00:05:05
47 чел. ★ 5 $
  На этом слайде мы напишем метод openBox(), который перебирает все возможные состояния клеток и в зависимости от этого выполняет ту или иную операцию.
45 Нулевая рекурсия 00:04:01
47 чел. ★ 5 $
  На этом слайде мы рекурсивно откроем все клетки вокруг нулей.
46 Учёт зарытых флагов 00:04:19
47 чел. ★ 5 $
  На этом слайде мы будем считать количество флажков и закрытых клеток на нашем поле
47 Телеграмма о флажках 00:03:28
47 чел. ★ 5 $
  На этом слайде мы выведем сообщение пользователю, сколько флажков и сколько бомб есть на экране
48 День Победы! 00:05:25
47 чел. ★ 5 $
  На этом слайде мы проверим, а не победили ли мы!
49 Первая ошибка сапёра 00:06:13
47 чел. ★ 5 $
  На этом слайде мы зафиксируем поражение, когда игрок подорвался на бомбе.
50 Открываем карты 00:07:26
45 чел. ★ 5 $
  На этом слайде мы покажем расположение бомб после проигрыша.
51 Цифровой помощник сапёра 00:11:31
46 чел. ★ 5 $
  На этом слайде мы напишем помощник, который помогает открывать заведомо безопасные клетки.
52 Финальный аккорд 00:17:49
35 чел. ★ 5 $
  На этом видео мы проанализируем всё, что было сделано - пройдёмся по всему коду программы.
Также поговорим о создании Бота для игры Сапёр - как это можно сделать.
Ваше задание - записать видеообзор созданной игры, выложить
на youtube и разместить ссылку на видео в описании.
  Итого:   52 видеоурока 3 час. 50 мин.
1 тест
35 чел. ★ 4.96  
  Финалисты:   Никита,   Владислав,   Иван Воронин,   1  ,   Александр Р.,   Danil42Russia,   Pavlin,   Андрей Шевченко,   Neverwinter 2,   Сергей Стефаненко,   Александр,   Михаил,   Hofflin,   Сергей,   VladYorkyee,   chokayes,   Александр,   Tekashnik,   Денис,   Vladimir Falejev,   Yefim,   Иван,   Новопашин Владимир,   sergeykin,   FireWolf,   Кирилл Шмойлов,   yerv,   Нюта,   Anna,   Алексей В.,   AZANIR,   Дмитрий,   zhikharevav,   Dmitry Sinitsin,   Андрей Гладков .

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





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

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

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

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


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



Научился: Просьба за то, что не снял видеообзор камни не кидать xD Была проделана большая работа. Данный курс был разбит на короткие уроки в котором не было воды. Его можно сравнить с хороший книгой, прочитав один раз, хочется прочитать опять. Но понимая, что вложил 0 усилий что бы сделать данную игру, приходят мысли что надо сесть осмыслить и сделать самому. Спасибо Евгению Витольдовичу за данный курс. На этом всё)