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 5 ошибок обучающих курсов. Java + Xonix 00:09:22
1 тест
31 чел. ★ 4.6 Done
  Из-за каких ошибок большинство обучающих курсов не очень эффективны? Мы начинаем создание игровой программы Xonix с обзора этих самых ошибок, чтобы избежать их при создании практического видеокурса по изучению языка Java на примере написания небольшой видеоигры.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 25 мин. [Показать отчёт]
Научился: Xonix - игруха занимательная, написана впервые когда я во второй класс пошел )) Любопытно прокачать имеющиеся негустые навыки и получить действующую гаму написанную своими усилиями. В бой! 
2 FREE Поиграем? 00:04:59
1 тест
53 чел. ★ 4.8 Done
  На этом уроке вам необходимо:
1. скачать Java-код игры Xonix,
2. откомпилировать код.
3. запустить игру.
4. разобратья в игре и дойти хотя бы до 5 уровня.
Приложить скриншот результата.

В следующих уроках мы будем создавать эту игру с нуля -
отличный способ познакомиться с основными идеями Объектно-
Ориентированного Программирования на конкретном примере.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 45 мин. [Показать отчёт]
Научился: public модификатор пришлось добавить в class GameXonix extends JFrame { Иначе в Эклипсе гама не стартовала - давала ошибку (вторая иллюстрация) UPD - попробовал удалить паблик модификатор - гама уже и без него стартует. Причину пока не понял, как первая инициализация требовала паблика что ли... Гама занятная, не всяка птица долетит до середины Днепра, и не всяк гамер дотыкает до пятого уровня )  
3 Свои правила 00:03:51
1 тест
47 чел. ★ 4.9 Done
  На этом уроке мы установим свои правила в этой игре.
Поменяйте каждый параметр и проверьте результат.

В отчёте необходимо написать, изменение какого параметра было самым интересным.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 12 мин. [Показать отчёт]
Научился: final int PERCENT_OF_WATER_CAPTURE = 1;  // почти режим IDDQD из DOOMa))) Стало легче перескакивать на следующий уровень, вот такое читерство получилось. 
4 Установка Eclipse 00:06:45
1 тест
41 чел. ★ 4.9 Done
  На этом уроке мы скачаем и установим Eclipse. А также создадим первый Java - проект.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 28 мин. [Показать отчёт]
Научился: Eclipse, скачанный в 2019 году (Eclipse IDE for Java Developers Version: 2019-06 (4.12.0) Build id: 20190614-1200) затребовал в отличие от старой версии, как в уроке, обязательно указать пэкэдж. Дописал ему пэкэдж, привязку попросил к проекту и после этого ошибка ушла. 
5 Окно проекта 00:07:32
1 тест
39 чел. ★ 4.9 Done
  Создать проект и вывести окно
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 20 мин. [Показать отчёт]
Научился: маленьким удобствам ) ctrl + увеличивает шрифт ctrl -  уменьшает шрифт Знать горячие клавиши полезно - не всегда же мышкой елозить как офисный клерк будешь ) При отсутствии в коде инструкции setDefaultCloseOperation(EXIT_ON_CLOSE); закрытие окна JFrame не влечет за собой автоматического завершения работы программы.  
6 Использование констант 00:05:22
1 тест
38 чел. ★ 4.9 Done
  Добавим константы для размера окна и заголовка окна.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 18 мин. [Показать отчёт]
Научился: наименование констант пиши КАПСОМ, чтобы не отклоняться от линии партии Константы именованные не одним словом разделяй в названии НИЗКИМ_ПОДЧЕРКИВАНИЕМ Применение констант позволяет упростить поиск атрибутов, если располагать их в начале класса. Заодно, константа будет сопротивляться попыткам изменить ее значение - дополнительная защита. 
7 Панельный Canvas-класс 00:11:18
1 тест
38 чел. ★ 4.9 Done
  На этом уроке мы добавим панельный класс,
который называется Canvas - основа холста
для всех последующих рисунков.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 24 мин. [Показать отчёт]
Научился: создали вложенный класс, рисующий квадрат на панели игры Вызов родительского класса в Java осуществляется ключевым словом super. awt - abstract window toolkit 
8 Координатный кубик 00:08:47
1 тест
38 чел. ★ 4.9 Done
  На этом уроке мы передеаем отображение кубика -
сделаем так, чтобы он риовался в заданных (x, y) координатах.
Также добавим ещё несколько констант.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 3 час. 36 мин. [Показать отчёт]
Научился: применение констант и переменных, вместо прописывания значений  в инструкциях, организует код в более удобоваримый вид Проще и гибче становится редактирование, поиск разделов и внесение правок 
9 Классный кубик 00:08:41
1 тест
36 чел. ★ 5 Done
  На этом уроке мы создадим для кубика отдельный класс.
И его отрисовку будем вызывать "как полагается".
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 2 час. 0 мин. [Показать отчёт]
Научился: Как и предполагал, вынесение констант, отвечающих за цвет суши и воды, рассмотрели в следующем уроке Перед вызовом метода из другого класса СОЗДАЙ ЭКЗЕМПЛЯР! Почему приватная переменная икс допускает свое изменение? Мой вариант - в том же классе создается экземпляр этой переменной, причина доступа в этом. Не промазал? 
10 Перемещение кубика 00:05:24
36 чел. ★ 5 Done
  На этом уроке мы добавим функцию для перемещения кубика.
Для её вызова нужно будет написать Главную функцию игры go().
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 55 мин. [Показать отчёт]
Научился: canvas.repaint (); перерисовывает игровое поле Вызов метода, дорисованного тобой, не забывай прописывать от точки входа в программу (метод майн) 
11 Живой кубик 00:06:35
1 тест
36 чел. ★ 5 Done
  На этом уроке мы затавим кубик двигаться.
Для этого поместим вызов перемещения и перерисовки в бесконечный цикл.
А чтобы увидеть движение кубика - добавим функцию задержки DELAY.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 17 мин. [Показать отчёт]
Научился: пользоваться вечным циклом ))) JVM  не хранит в памяти предыдущие картинки и отрабатывает метод Paint  с чистого листа 
12 Граница на замке 00:10:46
1 тест
31 чел. ★ 5 Done
  На этом уроке мы ограничим движение кубика рамками нашего экрана.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 30 мин. [Показать отчёт]
Научился: не сразу понял как "очевидно" вычисляется мап хейт и мап видтх ) Делится высота и ширина поля на размер боксика. Чуток почесал репу и дошло, что речь идет о количестве допустимых прыжков по канвасу нашего боксика. Дедукция, однако. А с чистого листа сам бы не догадался, как это вычислить. Метод rotate проверяет значение следующего шага боксика с привлечением метода onMap, если возвращается ложное значение - знак следующего шага меняется на противоположный. В тупиковой ситуации боксик ставится в депо на позицию ноль ноль ) 
13 Точное прикосновение 00:07:41
31 чел. ★ 5 Done
  На этом уроке произведем коррекцию размеров игрового поля, чтобы кубик точно вписывался в границы окна.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 39 мин. [Показать отчёт]
Научился: видимое игровое поле не равно канвасу, отсюда необходимость корректировать диапазон движения боксика 
14 Классный шарик 00:07:52
1 тест
30 чел. ★ 5 Done
  В этом уроке мы создадим класс для нового героя нашей игры - для шарика.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 23 мин. [Показать отчёт]
Научился: cоздали класс для шарика, где прописали его размер и цвета В основном классе объявили шарик и в методе создающем канвас создали экземпляр шарика Классу Канвас, наследующему ДжиПанел наказали строго-настрого для экземпляра нашего шарика использовать метод (инструкцию) пэйнт Увидели шарик на канвасе Пока не движется ) 
15 Живой шарик 00:03:57
1 тест
28 чел. ★ 5 Done
  На этом уроке мы оживим шарик, напишем/скопируем функции для его передвижения.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 12 мин. [Показать отчёт]
Научился: шарик начал двигаться после добавления в его класс идентичных инструкций движения разворота и отслеживания ненарушения границ канваса. После указания в точке входа в программу инструкции шарику двигаться - он взлетел Ошибка недобега до границ игрового поля была в несоблюдении целочисленности деления размера игрового поля на размер шарика и боксика 
16 Снова рефакторинг 00:06:59
21 чел. ★ 5 Done
  На этом уроке мы займёмся рефакторингом и перенесём функцию onMap в главный класс программы.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 19 мин. [Показать отчёт]
Научился: рефакторинг - оптимизация кода без изменения функционала программы в дереве класса следующая легенда: треугольник пустотелый - переменная или поле класса треугольник закрашенный - метод, функция или набор инструкций что может делать экземпляр класса треугольник закрашенный с литерой С - конструктор экземпляра класса (этакий тридэпринтер) 
17 Абстрактный субъект 00:04:39
1 тест
28 чел. ★ 5 Done
  На этом уроке мы создадим абстрактный класс Subject,
в который перенесём повторяемый код из классов Кубика и Шарика.
Благодаря Наследованию код классов Cube и Ball станет более компактным.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 12 мин. [Показать отчёт]
Научился: абстрактный класс НЕ МОЖЕТ иметь экземпляра При написании абстрактного класса не ставь круглые скобки - класс это не метод, скобки надо ТОЛЬКО фигурные Поля protected доступны внутри самого класса и для наследников  
18 Базовое наследство 00:02:40
21 чел. ★ 5 Done
  На этом уроке мы избавимся от дублирующегося кода, благодаря наследованию.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 8 мин. [Показать отчёт]
Научился: ключевое слово extends Имя_класса позволяет подключить к классу, в сигнатуре которого указан этот икстендз, функционал того класса, имя которого приведено после икстендз Удобно, чесслово ) 
19 Броуновское движение 00:06:03
1 тест
28 чел. ★ 5 Done
  На этом уроке создадим экземпляр класса Random
Теперь наши субъекты будут появляться в случайных
местах и двигаться в разных направлениях.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 1 мин. [Показать отчёт]
Научился: random.nextInt(MAP_WIDTH); возвращает случайное целое число от нуля до аргумента в скобках В силу неведомых причин в какой-то момент пропал двигающийся шарик, кинулся искать проблему - нашел неведомо откуда продублировавшийся аргумент MAP_WIDTH здесь: x = random.nextInt(MAP_WIDTH); y = random.nextInt(MAP_HEIGHT); Исправил - снова шарик летает вместе с боксиком Объявили random Проинициализировали (создали экземпляр) random Использовали random 
20 Размножение шариков 00:07:33
27 чел. ★ 5 Done
  На этом уроке мы добавим несколько шариков на наше поле.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 57 мин. [Показать отчёт]
Научился: шарики размножил циклом ) Класс Боллз подтягивает шарики из АррэйЛиста Есть конструктор, создающий новый АррэйЛист Класс умеет добавлять шарик перемещать шарик отрисовывать этот же шарик 
21 Чудеса полиморфизма 00:10:02
1 тест
25 чел. ★ 5 Done
  На этом уроке воспользуемся магией Полиморфизма -
Поместим и шарики, и кубики в один массив.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 25 мин. [Показать отчёт]
Научился: Сабджект породил Куба, куб породил движение Сабджект породил Шарика, Шарик породил движение Другими словами class Ball extends Subject и class Cube extends Subject Отсюда при создании Сабджекта мы смело вызываем методы подклассов и получаем в одном массиве и Шарики и Боксики Профит! ) 
22 Упаковка панели в окно 00:08:37
18 чел. ★ 5 Done
  На этом уроке мы переделаем способ задания размеров карты и экранной формы.
Спасибо за помощь Ивану Воронину, который подготовил материал этого урока.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 20 мин. [Показать отчёт]
Научился: отказались от пикселного задания игрового поля и стали плясать от количества шагов по нему Коэффициентами жестко расписали размер нового построения игрового поля Метод  pack() вывел готовый вариант игры на экран 
23 Земля и Вода 00:16:06
1 тест
14 чел. ★ 5 Done
  На этом уроке мы создадим, как творец, Землю и Воду.
Сделаем класс Field для отображения поля всей игры.
Напишем метод paint для отображения всей карты.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 6 час. 8 мин. [Показать отчёт]
Научился: в классе Филд присобачил лишнюю закрывающую фигурную скобку - программный код покрылся ошибками - с удовольствием обнаружил ошибку и компиляция прошла успешно. Понять, отчего не отрисовывается правая часть игрового поля. Код просмотрел - ошибок пока не нашел. То ли еще будет. 
24 Матрица Мира 00:11:58
1 тест
12 чел. ★ 5 Done
  На этом уроке мы создадим матрицу нашего поля.
Мы должны будем хранить состояние игрового поля
и для этого нам потребуется двумерный массив - матрица.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 52 мин. [Показать отчёт]
Научился: random.nextInt(MAP_HEIGHT)  генерирует случайное число от нуля до MAP_HEIGHT Все добавленные методы, если надо чтобы они шли в бой, должны быть вызваны, иначе будут лежать в коде балластом 
25 Цветовая дифференциация 00:11:38
8 чел. ★ 5 Done
  Когда у общества нет цветовой дифференциации штанов, то нет цели!

На этом уроке мы займёмся рефакторингом -
негоже использовать цветовую дифференциацию штанов объектов,
лучше перечислить их в отдельном enum-классе Cell.

https://www.youtube.com/watch?v=2FgWNKgSvqY
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 3 час. 54 мин. [Показать отчёт]
Научился: объекты enum в языке Java являются объектами класса и шаблона Singleton Заменили интовые игровые элементы на перечисление Урок писался после длительного перерыва - интересное обстоятельство, почти экскурс в историю ВидеоШарпа увидел ) 
Видеообзор: gcOXSSfODQc
26 Острова, острова 00:11:49
1 тест
8 чел. ★ 5 Done
  А острова, а острова, где-то ждут нас острова...
Всё же карты не всегда бывают правы.
А острова, а острова, я найду вас острова!

На этом уроке мы вынесем размещение островов в отдельный метод.

https://www.youtube.com/watch?v=Zm2VyOL2rHA
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 38 мин. [Показать отчёт]
Научился: геттер принимает координату ячейки и смотрит, если на карте - то возвращает элемент массива map сеттер координату ячейки с ее типом и снова, если на карте, то устанавливает ее значение 
27 Среда обитания 00:12:40
1 тест
7 чел. ★ 5 Done
  На этом уроке мы определим среду обитания для наших субъектов.
Кубики живут на суше, шарики на воде.
И добавим в абстрактный класс функционал
жизнедеятельности субъектов в родной среде обитания.

https://www.youtube.com/watch?v=sQHqFBvFt6M

// старый урок - QHKMrETJNaI //
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 2 час. 28 мин. [Показать отчёт]
Научился: в шаблон Субъект добавили поле (характеристику шаблона-класса) area типа  Cell Чтобы кубики жили на земле в конструкторе кубика вызываем конструктор из суперкласса Субъект с передачей аргумента (Cell.LAND); Для актуализации новых правил для субъектов дописали метод rotate, отвечающий за поведение игровой фигуры в момент появления у границ 
Сложности: Уследить в режиме дебага за созданием объектов 
28 Главный герой 00:08:27
7 чел. ★ 5 Done
  На этом уроке мы создадим класс Xonix и нарисуем главного героя.

Земля и вода создана, рыбы и животные резвятся,
настало время создать Хониха «из праха земного».

Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 36 мин. [Показать отчёт]
Научился: чтобы иметь доступ к единому объекту Зоникса, добавление его на игровое поле выполнили иначе, нежели кубик и шарик. Сначала в корневом классе игры объявили Зоникса, затем уже в общей куче создали объект Зоникса новый, а уже потом добавили его в items 
29 Клавиши подсознания 00:11:07
1 тест
7 чел. ★ 5 Done
  На этом уроке мы создадим слушатель для клавиатуры,
чтобы пользователь смог управлять главным героем.
Это будет отдельный класс, имплементирующий интерфейс KeyListener.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 17 мин. [Показать отчёт]
Научился: применили библиотеки java.awt.event.KeyListener и java.awt.event.KeyEvent; Парочка багов была допущена мной за этот урок, то метод в названии обидел на литеру, то аргументы передавал х и у вместо dx и dy Внимательное перекуривание кода дало свои плоды - Зоникс прислушался к шепоту клавиш и пошел в требуемом направлении 
30 Прыжок в воду 00:10:27
6 чел. ★ 5 Done
  На этом уроке мы научим Хониха "нырять".
Добавим флаг статуса - на воде он или на суше,
и при выходе в море - проставим первую клетку моста.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 16 мин. [Показать отчёт]
Научился: рисуется одна ячейка пути по той причине, что в методе мувЛэнд кейс для встречи воды так и приказывает "нарисовать одну клетку пути" case WATER: onWater = true; field.setMap(x, y, Cell.PATH); Другого пока кодом не предусмотрено, цикла не прикручено (как я предполагаю), оттого и одна-одинешенька эта серая клетка пути 
31 Прогулки по воде 00:08:47
1 тест
6 чел. ★ 5 Done
  На этом уроке мы научим Хониха правильно ходить по воде.
Строить за собой мост и даже превращать следы в землю.

https://www.youtube.com/watch?v=Ogh3GjpS07k
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 33 мин. [Показать отчёт]
Научился: передача аргументов в метод - наше все ) field.replace           (Cell.PATH, Cell.WATER);                                       |                    | public void replace( Cell find,    Cell with) { for (int y = 0; y < MAP_HEIGHT; y++) for (int x = 0; x < MAP_WIDTH; x++) { if (map [x][y] == find) map [x][y] = with; } } В переводе на русский так: циклом проверим все клетки и если клетка икуалз первому аргументу ( а он у нас Cell.PATH), то заменить его на значение второго аргумента (Cell.WATER) 
32 Заштриховка области 00:09:25
1 тест
6 чел. ★ 5 Done
  Ты квадратик нарисуй, и немножко заштрихуй!

На этом уроке мы напишем оригинальный рекурсивный алгоритм заливки области.
На этом наша игра практически завершена, остались сплошные мелочи.

Подробнее о рекурсии в курсе «Комбинаторика»
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 49 мин. [Показать отчёт]
Научился: рекурсия в заполнении заканчивается в случае выхода за пределы WATER Следующая инструкция дает команду ячейку икс игрек пометить как ПОТРАЧЕНО ) А заканчивается рекурсивка четырьмя инструкциями КУДА идти с требуемыми метками ячеек - НА ВСЕ ЧЕТЫРЕ СТОРОНЫ ))) Затем, когда четыре стороны упираются в вышеуказанную НЕ ВОДУ - все, финита ла комедиа, рекурсия прекращается. Конгениально! 
33 Живая Легенда 00:09:29
1 тест
6 чел. ★ 5 Done
  На этом уроке мы добавим метку для отображения информации.
Наша легенда будет показывать приветствие, счёт и сообщение о завершении игры.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 28 мин. [Показать отчёт]
Научился: на третьей минуте урока добавляется инструкция про шрифт - он у автора уже проимпортирован, надо лишь добавить самостоятельно импорт, если такого еще не делалось ) Несложно  
34 Процент Земли 00:09:01
1 тест
6 чел. ★ 5 Done
  На этом уроке мы будем считать процент огороженной земли.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 35 мин. [Показать отчёт]
Научился: вызов свеженаписанного метода располагай в точке входа, если он нужен сразу, либо в том методе, в процессе выполнения которого все готово для запуска Где поставишь инструкцию - тогда он и будет запущен Код выполняется строка за строкой сверху вниз, исключая случаи вызова методов, расположенных в других местах По окончании выполнение продолжается далее вниз с места, после которого был осуществлен вызов стороннего метода 
35 Следующий уровень 00:16:05
1 тест
6 чел. ★ 5 Done
  На этом уроке мы сформируем функцию
для перехода на следующий уровень игры.
Каждый уровень будет сложнее предыдущего -
будут добавляться шарики, кубики, острова,
увеличиваться скорость игры.

Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 45 мин. [Показать отчёт]
Научился: начали с создания глобальной интовой переменной отвечающей за номер уровня добавили ускорение игры, увеличение участников по чету и нечету, в легенду дописали текущий уровень. 
Сложности: Делать урок в тисках времени Поехал на барщину к садистам ))) 
36 Конец игры 00:12:47
1 тест
5 чел. ★ 5 Done
  На этом уроке мы научим шариков и кубиков ловить Хониха.
Если они его поймают или ухватятся за путь - игра начнётся заново.
Придумайте, что ещё можно добавить в игру.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 6 час. 42 мин. [Показать отчёт]
Научился: метод кэтчд возвращает булево значение ИСТИНА если разность по модулю координаты фигуры и координаты Зоникса не превышает единицу В ином случае - метод возвращает ЛОЖЬ 
Сложности: доделать урок с перерывами в рабочем графике 
37 ФИНАЛЬНЫЙ УРОК без видео
1 тест
5 чел. ★ 5 Done
  Поздравляю с завершением приключений Хониха!
Напиши своё впечатление о прохождении этого курса.
Что ещё ты хотел бы добавить в эту программу?
* Запиши видеообзор созданной программы.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 11 мин. [Показать отчёт]
Научился: лично для меня в этом курсе было прорывом увидеть воочию действие рекурсии на примере работы метода по закраске оттяпанной Зониксом территории у воды. Не сказать, чтобы я про ту рекурсию впервые слышал, попадалась она и прежде, но чтобы понять - вот здесь уже заслуга этого курса. Сам для себя отметил, что вижу рекурсию, понимаю когда она останавливается, понимаю что происходит при ее перегрузке с помощью аргументов. В общем, то был восторг, когда дошло и понял. Допиливать игруху можно долго и с удовольствием, можно добавить музыку фоном, анимировать события звуками столкновений. Курс живой и интересный. 
Видеообзор: aY-cSwKcPTY
  Итого:   37 видеоуроков 5 час. 15 мин.
28 тестов
5 чел. ★ 4.97  
  Финалисты:   Иван Воронин,   Новопашин Владимир,   Dmitry Sinitsin,   Anatoli,   Yefim .

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





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

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

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

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


Научился: лично для меня в этом курсе было прорывом увидеть воочию действие рекурсии на примере работы метода по закраске оттяпанной Зониксом территории у воды. Не сказать, чтобы я про ту рекурсию впервые слышал, попадалась она и прежде, но чтобы понять - вот здесь уже заслуга этого курса. Сам для себя отметил, что вижу рекурсию, понимаю когда она останавливается, понимаю что происходит при ее перегрузке с помощью аргументов. В общем, то был восторг, когда дошло и понял. Допиливать игруху можно долго и с удовольствием, можно добавить музыку фоном, анимировать события звуками столкновений. Курс живой и интересный.



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