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.

Отчёт отправил: 16533. Андрей Шевченко Выполнено за 23 час. 23 мин. [Показать отчёт]
Научился: Научился устанавливать JDK и IntelliJ IDEA  )) 
Сложности: Пока что ничего 
2 FREE Простое окно 00:03:02
96 чел. ★ 4.9 Done
  На этом уроке мы начинаем новый проект
и создадим JFrame приложение.
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 55 мин. [Показать отчёт]
Научился: Научился создавать новый проект.  
Сложности: ничего)) 
3 Закрытие на выходе 00:03:00
91 чел. ★ 4.9 Done
  На этом уроке мы настроим JFrame приложения.
Для этого пропишем необходимые параметры.

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

Отчёт отправил: 16533. Андрей Шевченко Выполнено за 14 мин. [Показать отчёт]
Научился: Научился помещать картинку в каждый экземпляр перечисления 
Сложности: Некоторые моменты непонятны. Стараюсь делать просто по инструкции 
15 Источник ресурсов 00:01:53
79 чел. ★ 4.9 Done
  На этом слайде мы сделаем загрузку картинок через систему ресурсов в языке Java
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 15 мин. [Показать отчёт]
Научился: Научился помечать папку как корень ресурсов. 
Сложности: Иногда сложно  понимать что для чего делается. Иногда голова кругом идет))) 
16 Запускаемый jархив 00:02:55
73 чел. ★ 5 Done
  На этом слайде мы создадим запускаемый JAR-архив для нашей программы

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

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

Отчёт отправил: 16533. Андрей Шевченко Выполнено за 3 мин. [Показать отчёт]
Научился: Почти ничего не понял 
Сложности: Было сложно понять схему 
24 Игровая координата 00:04:07
57 чел. ★ 4.9 Done
  На этом слайде мы создадим класс Game и реализуем в нем конструктор, а также метод getBox(), который по заданным координатам возвращает, что должно быть в указанной клетке нашего поля.
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 17 мин. [Показать отчёт]
Научился: Научился создавать новый класс, реализовал в нем конструктор. Создал метод getBox 
Сложности: Сложно не допустить ошибку в коде 
25 Матрица мира 00:04:32
56 чел. ★ 4.9 Done
  На этом слайде мы создадим класс Matrix для хранения всех элементов нашего игрового поля
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 17 мин. [Показать отчёт]
Научился: Научился создавать новый класс Matrix 
Сложности: Если повторять все, что делается - ничего сложного 
26 За гранью видимого 00:04:49
55 чел. ★ 4.9 Done
  На этом слайде мы добавим в класс Matrix два метода - геттер и сеттер для получения и установки полей нашей игры
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 17 мин. [Показать отчёт]
Научился: Немножко понял что такое геттер и сеттер 
Сложности: Сложно успеть до 20 числа) 
27 Бомбанутый класс 00:02:55
53 чел. ★ 5 Done
  На этом слайде мы поговорим о классе Bomb, который будет использоваться для хранения нижнего слоя нашего поля, где находятся бомбы и числа вокруг них
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 49 мин. [Показать отчёт]
Научился: Класс Bomb, как я понимаю, предназначен для настройки количества бомб на поле, их расположения, расположения цифр вокруг бомб. 
Сложности: понять схему 
28 Тестовая бомба 00:05:11
54 чел. ★ 5 Done
  На этом слайде мы начнем создавать класс Bomb
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 25 мин. [Показать отчёт]
Научился: Пока что учусь только копировать все с видеоурока) Уроки нравятся, очень интересно. 
Сложности: Как обычно, многое непонятно 
29 Случайные бомборазмещения 00:04:35
54 чел. ★ 5 Done
  На этом слайде мы разместим бомбы в случайных местах на нашей карте
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 17 мин. [Показать отчёт]
Научился: Научился создавать метод placeBomb 
Сложности: все понятно 
30 Сравнение координат 00:03:09
53 чел. ★ 5 Done
  На этом слайде мы исправим несколько ошибок и добавим в класс Coord метод для сравнения двух координат
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 10 мин. [Показать отчёт]
Научился: Научился исправлять ошибки. Добавил метод сравнения двух координат. 
Сложности: Запомнить все) 
31 Ограда из единиц 00:06:29
53 чел. ★ 4.9 Done
  На этом слайде мы научимся проставлять единицы вокруг каждой бомбы
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 18 мин. [Показать отчёт]
Научился: Добавил функцию перебора клеток вокруг заданной 
Сложности: Как обычно, сложно все понять. 
32 Следующая цифра 00:04:16
51 чел. ★ 5 Done
  На этом слайде мы будем увеличивать цифры вокруг каждой новой размещенной бомбы
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 12 мин. [Показать отчёт]
Научился: Интересно видеть как программа разрастается, постепенно становится более рабочей что ли) 
Сложности: Как обычно все понять 
33 Дважды в одну воронку 00:05:52
49 чел. ★ 5 Done
  На этом слайде мы исключим попадание двух бомб в одну воронку
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 21 мин. [Показать отчёт]
Научился: Курс очень нравится. Не все понятно, но интересно 
Сложности: Иногда сложно для моего понимания 
34 Флаг над классом 00:09:18
48 чел. ★ 5 Done
  На этом слайде мы перейдем к верхнему уровню нашей абстракции - классу Flag.
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 19 мин. [Показать отчёт]
Научился: Научился разбирать схему. Я выбрал для описания метод void start (), потому что он показался самым простым. С него начинается запуск новой игры.  
Сложности: почти все понятно 
35 Королевская траншея 00:05:02
48 чел. ★ 5 Done
  На этом слайде мы создадим методы start() и get() в класс Flag.
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 19 мин. [Показать отчёт]
Научился: Добавил новый класс Flag, добавил в него методы 
Сложности: Сложно для меня открыть еще по образцу другие клетки. Не стал трогать чтоб все не сломать)) 
36 Клавишные инструменты 00:04:16
48 чел. ★ 5 Done
  На этом слайде мы создадим два метода в классе Game - pressLeftButton() и pressRightButton()
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 17 мин. [Показать отчёт]
Научился: Добавил в класс Game методы pressleftButton() и pressRightButton() 
Сложности: Вроде ничего 
37 Мышечный адаптер 00:06:27
47 чел. ★ 5 Done
  На этом слайде мы, наконец, добавим интерактив в нашу программу и зарегистрируем адаптер мыши для опроса левой и правой кнопки.
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 24 мин. [Показать отчёт]
Научился: Добавил в класс Game методы для обработки правой и левой клавиш мыши. 
Сложности: почти ничего 
38 Схема правой педали 00:02:24
47 чел. ★ 5 Done
  На этом слайде мы разберем алгоритм нажатия правой кнопки мышки в игре JavaSweeper
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 22 мин. [Показать отчёт]
Научился: Правая кнопка мыши ставит или убирает флаг. Если флага нет - ставит флаг и уменьшает счетчик мин на одну. Если флаг стоит - снимает его и увеличивает счетчик мин на одну. 
Сложности: вроде бы ничего. Но ролик три раза пересмотрел)) 
39 Смена флагов 00:03:36
47 чел. ★ 5 Done
  На этом слайде мы реализуем установку и удаление флажков и напишем реализацию функции pressRightButton()
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 22 мин. [Показать отчёт]
Научился: Реализовал функцию pressRightButton() 
Сложности: Придумать, что нарисовать флажками)) 
40 Добро пожаловать! 00:04:24
47 чел. ★ 5 Done
  На этом слайде мы добавим строчку состояния в нашу программу
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 15 мин. [Показать отчёт]
Научился: Добавил строку состояния внизу панели программы. Научился устанавливать на строку состояния шрифт, его тип и размер. 
Сложности: Ничего. Интересно 
41 Недетские состояния 00:02:52
47 чел. ★ 5 Done
  На этом слайде мы создадим перечисление GameState, в котором будет храниться состояние игры

Отчёт отправил: 16533. Андрей Шевченко Выполнено за 15 мин. [Показать отчёт]
Научился: Создал перечисление GameState 
Сложности: Сложно понять что сделали) Вроде ничего не изменилось 
42 Актуальное информирование 00:06:07
47 чел. ★ 5 Done
  На этом слайде мы сформируем сообщение о текущем статусе игры в зависимости от текущего состояния и выведем его на экран
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 43 мин. [Показать отчёт]
Научился: Научился выводить сообщения в зависимости от текущего состояния игры 
Сложности: Понять что я делаю) 
43 Алгоритм открывашки 00:07:43
47 чел. ★ 5 Done
  На этом слайде мы займемся обработкой нажатия левой кнопки мышки
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 31 мин. [Показать отчёт]
Научился: Рассмотрел алгоритм открытия клеток левой кнопкой мыши. 
Сложности: Не очень понятен алгоритм. 
44 Выбор из выбора 00:05:05
47 чел. ★ 5 Done
  На этом слайде мы напишем метод openBox(), который перебирает все возможные состояния клеток и в зависимости от этого выполняет ту или иную операцию.

Отчёт отправил: 16533. Андрей Шевченко Выполнено за 20 мин. [Показать отчёт]
Научился: Добавил метод openBox для реализации действий программы по нажатию левой кнопки мыши  
Сложности: Все как обыно)) Не везде понятно, делаю просто по образцу. 
45 Нулевая рекурсия 00:04:01
47 чел. ★ 5 Done
  На этом слайде мы рекурсивно откроем все клетки вокруг нулей.
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 16 мин. [Показать отчёт]
Научился: Реализовал рекурсию клеток вокруг пустых 
Сложности: Ничего 
46 Учёт зарытых флагов 00:04:19
47 чел. ★ 5 Done
  На этом слайде мы будем считать количество флажков и закрытых клеток на нашем поле
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 16 мин. [Показать отчёт]
Научился: Сделал счетчик флажков и счетчик закрытых клеток 
Сложности: Понять алгоритм 
47 Телеграмма о флажках 00:03:28
47 чел. ★ 5 Done
  На этом слайде мы выведем сообщение пользователю, сколько флажков и сколько бомб есть на экране
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 23 мин. [Показать отчёт]
Научился: Реализовал вывод сообщений о количестве бомб и флажков. В свое время очень много играл в сапер. Рад , что есть такой интересный курс. Спасибо. 
Сложности: Как обычно, сложно иногда уследить за алгоритмом. Еще сложно не ошибиться. Не пойму, в IntelliJ IDEA есть функция загрузки - сохранения? Что то не могу найти. 
48 День Победы! 00:05:25
47 чел. ★ 5 Done
  На этом слайде мы проверим, а не победили ли мы!
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 17 мин. [Показать отчёт]
Научился: Научился реализовывать проверку на победу) 
Сложности: Сложно это придумать самому 
49 Первая ошибка сапёра 00:06:13
47 чел. ★ 5 Done
  На этом слайде мы зафиксируем поражение, когда игрок подорвался на бомбе.
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 37 мин. [Показать отчёт]
Научился: Настроил завершение игры при поражении 
Сложности: Сложно понять код 
50 Открываем карты 00:07:26
45 чел. ★ 5 Done
  На этом слайде мы покажем расположение бомб после проигрыша.
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 21 мин. [Показать отчёт]
Научился: Настроил открытие всех бомб после проигрыша 
Сложности: Не запутаться в процессе 
51 Цифровой помощник сапёра 00:11:31
46 чел. ★ 5 Done
  На этом слайде мы напишем помощник, который помогает открывать заведомо безопасные клетки.
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 34 мин. [Показать отчёт]
Научился: Научился настраивать открытие безопасных клеток по нажатию клавиши мыши 
Сложности: Сложно было не ошибиться при наборе кода 
52 Финальный аккорд 00:17:49
35 чел. ★ 5 Done
  На этом видео мы проанализируем всё, что было сделано - пройдёмся по всему коду программы.
Также поговорим о создании Бота для игры Сапёр - как это можно сделать.
Ваше задание - записать видеообзор созданной игры, выложить
на youtube и разместить ссылку на видео в описании.
Отчёт отправил: 16533. Андрей Шевченко Выполнено за 2 час. 1 мин. [Показать отчёт]
Научился: Это мой первый видеообзор. Прошу меня извинить. В настоящий момент не имею возможности записать видео со звуком, но очень хочу успеть завершить курс  до 22 декабря.  Курс очень понравился. Проходил с большим интересом. Как говорится на одном дыхании))). Евгению Витольдовичу большая благодарность за проделанную работу. 
Сложности: Сложно было не допустить ошибок, ничего не упустить. И иногда была проблема со временем. 
Видеообзор: XAnMzhsWqXw
  Итого:   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 усилий что бы сделать данную игру, приходят мысли что надо сесть осмыслить и сделать самому. Спасибо Евгению Витольдовичу за данный курс. На этом всё)