Изучение c# на примерах

Формула программиста
основатель — Волосатов Евгений Витольдович

Боты Сапёра

Сначала мы напишем игру Сапёр.
Потом напишем алгоритм ИИ поиска мин.
И наконец создадим Бота для прохождения
программы MineSweeper от Microsoft.
На вип-уроке будет хакерский бот.



32 урока
10 часов 56 минут.

Хочу купить!

Купить в рассрочку за мегахеши

Цена: 2000 p.


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

# Название видеоурока Решило Рейтинг Доступ
1 ИГРА - Счастливый сапёр 00:10:45 28 чел. ★ 4.9 Free
  Мы начинаем создание популярной игры сапёр.
Эта игра - отличное урпажнение для начинающего программиста.
 
4814. Дмитрий
4814. Дмитрий
6452. Кирилл Шмойлов
10162. Дмитрий
2 ИГРА - Минная картотека 00:11:57 24 чел. ★ 5 $
  На этом уроке мы проанализируем блок-схему проекта
подготовим форму для проекта, загрузим все картинки.
 
16457. sergeykin
16457. sergeykin
10670. Сергей Соколов
10670. Сергей Соколов
3 ИГРА - Классные мины 00:20:47 22 чел. ★ 5 $
  На этом уроке мы создадим класс Mines,
в котором опишем все необходимые константы
и напишем функции Init(), PlaceMines(), PlaceCounter().
 
7119. Новопашин Владимир
10494. Алексей В.
10670. Сергей Соколов
6452. Кирилл Шмойлов
4 ИГРА - Матрица картинок 00:25:08 22 чел. ★ 5 $
  На этом уроке мы сделаем вывод картинок на экран.
Для этого мы напишем функцию PlaceBox(),
которая будет создавать катинки и размещать их на панель.
Потом мы создадим матрицу картинок.
В конце урока мы сделаем автоматическое
изменение картинок при ресайзинге формы.
 
5649. Максим Лапшинов
10558. Иван Воронин
429. Максим Базуев
16457. sergeykin
5 ИГРА - Карта минного поля 00:19:35 21 чел. ★ 5 $
  На этом уроке мы отобразим минное поле.
Для это нам потребуется функция
private Bitmap ShowPicture (int number) и
private void ShowBox (int x, int y, int number)
а также делегаты для их вызова из класса Mines.
 
16457. sergeykin
7238. Константин
10673. Алексей Хонин
10494. Алексей В.
6 ИГРА - Зелёный флаг 00:17:40 21 чел. ★ 5 $
  На этом уроке мы сделаем обработку клика
правой кнопкой мышки для установки флага.
Для этого нам потребуется сохранять и считывать
координаты клетки в поле Tag каждого PictureBox.
 
6452. Кирилл Шмойлов
10494. Алексей В.
8275. Tekashnik
16457. sergeykin
7 ИГРА - Алгоритмический подход 00:13:27 21 чел. ★ 5 $
  На этом уроке мы напишем основную часть
алгоритма обработки левой кнопки мышки.
Мы разделим эту задачу на несколько
вспомогательных функций, которые
вы можете реализовать самтостоятельно.
 
6203. Николай Миролюбов
10162. Дмитрий
6452. Кирилл Шмойлов
7119. Новопашин Владимир
8 ИГРА - Бомбовые алгоритмы 00:29:29 20 чел. ★ 5 $
  На этом уроке мы допишем остальные функции и поиграем в созданную игру.
Вам останется довести программу до ума,
сделать сообщение об окончании игры и
все остальные элементы игры,
по желанию и по фантазии.
 
10670. Сергей Соколов
9858. Александр
10558. Иван Воронин
10558. Иван Воронин
9 ТРЕТЬФИНАЛЬНЫЙ УРОК 20 чел. ★ 5 $
  Поздравляю с завершением курса по созданию игры Сапёр.
Однако создание игры на этом ещё не закончено.
Твоя задача - придумать, что ещё можно/нужно
добавить в игру и реализовать это.
Запиши видеообзор своей игры и расскажи,
что ты добавил в неё самостоятельно.
 
10670. Сергей Соколов
7119. Новопашин Владимир
6452. Кирилл Шмойлов
16457. sergeykin
10 ИИ - Как пройти игру 00:03:38 19 чел. ★ 4.9 $
  Мы начинаем создание Искусственного Интеллекта для игры Сапёр,
для чего нам потребуется несколько этапов.
1. Описание и понимание идеи алгоритма.
2. Ручная проработка алгоритма на практике.
3. Создание класса для логики ИИ.
4. Внедрение его в наш проект для тестирования.
5. Создание бота для чужой игры Сапёр.
 
8275. Tekashnik
10365. Rita
10673. Алексей Хонин
6203. Николай Миролюбов
11 ИИ - Очевидные шаги 00:09:00 19 чел. ★ 5 $
  На этом уроке мы отработаем базовый,
самый очевидный алгоритм разминирования,
который основан на открытии очевидных клеток.
 
10673. Алексей Хонин
5649. Максим Лапшинов
16457. sergeykin
7119. Новопашин Владимир
12 ИИ - Пересечение множеств 00:34:53 17 чел. ★ 5 $
  На этом уроке у нас будет матчасть, логика ИИ.
Мы решим задачу с пересекающимися множествами
через систему неравенств. Узнаем, в каком
случае может быть единственный ответ,
и как его просчитать простой формулой,
чтобы разделить два пересекающихся
множества на три непересекающихся.
 
4814. Дмитрий
10157. Кирилл Лебедев
429. Максим Базуев
1901. Neverwinter 2
13 ИИ - Класс группы 00:17:28 17 чел. ★ 4.9 $
  На этом уроке мы начнём создание проекта
логики бота сапёра. Мы создадим структуру
с координатами клеток и опишем поля и
методы класса Group, в котором будут
храниться логические группы минного поля.
 
10365. Rita
10673. Алексей Хонин
11589. Yefim
1901. Neverwinter 2
14 ИИ - Элементарные алгоритмы 00:10:03 16 чел. ★ 5 $
  На этом уроке мы реализуем два элементарных
алгоритма определения пустых клеток и клеток
с минами, а также проверим, как это работает.
 
4004. Елена
5649. Максим Лапшинов
8275. Tekashnik
8275. Tekashnik
15 ИИ - Жучкин алгоритм 00:39:05 16 чел. ★ 4.9 $
  На этом уроке мы внедрим наш элементарный
алгоритм в рабочую программу и создадим
кнопочку, по нажатию которой будут
отмечаться все явные мины и пустые клетки.
Минут 15 в уроке ушло на поиск ошибки.
 
10494. Алексей В.
11589. Yefim
5649. Максим Лапшинов
8275. Tekashnik
16 ИИ - Вспомнить всё 00:23:17 16 чел. ★ 5 $
  На этом уроке мы вспомним и повторим, что было на прошлых уроках.
Для чего нужен класс Group и как он используется для поиска мин на карте.
В этом уроке мы почти ничего писать не будем, просто освежим всё в памяти.
 
10558. Иван Воронин
16457. sergeykin
9858. Александр
1901. Neverwinter 2
17 ИИ - Операции со множествами 00:15:19 16 чел. ★ 5 $
  На этом уроке мы напишем основные методы для работы со множествами:
сравнение, пересечение и вычитание множеств.
 
7238. Константин
4004. Елена
16457. sergeykin
11589. Yefim
18 ИИ - Множественное тестирование 00:06:46 16 чел. ★ 4.9 $
  На этом уроке мы проведём тестирование
созданных методов операций над множествами.
 
16457. sergeykin
7238. Константин
7119. Новопашин Владимир
10670. Сергей Соколов
19 ИИ - Ботовый алгоритм InterMines 00:17:38 16 чел. ★ 4.9 $
  На этом уроке мы наконец-таки напишем код алгоритма,
о котором мы так много говорили в предыдущих уроках.
 
6452. Кирилл Шмойлов
429. Максим Базуев
10494. Алексей В.
9858. Александр
20 ИИ - Открыть всё! 00:21:34 16 чел. ★ 5 $
  На этом уроке мы перепишем по новому
алгоритм открытия всех клеток с
использованием класса Group.
Ура! Открываемость минного поля значительно возросла!
Это успех :)
 
10494. Алексей В.
10558. Иван Воронин
10558. Иван Воронин
429. Максим Базуев
21 ВТОРОЙ ТРЕТЬФИНАЛЬНЫЙ УРОК 15 чел. ★ 5 $
  Поздравляю с завершением создания Искуственного Интеллекта для решения Сапёра!

Ты молодец, написал искуственный интеллект,
и круто прокачал навыки алгоритмического мышления,
которое так важно для программиста, молодец!

Запиши видеообзор созданного бота и своей программы.

Впереди внедрение ИИ Бота для сторонней игры.
 
10673. Алексей Хонин
429. Максим Базуев
8275. Tekashnik
8275. Tekashnik
22 БОТ - Отмычка сапёра 00:31:45 15 чел. ★ 4.9 $
  На этом уроке мы начнём создавать настоящего бота,
который будет проходить сапёра из Windows XP.
Мы найдём указатель на программу,
вычислим координаты окна игры,
запрограммируем несколько
щелчков мышкой по ней.

Для работы нам потребуется именно XP версия сапёра, её можно скачать здесь:
www.videosharp.info/data/docs/winmine.exe.
 
7119. Новопашин Владимир
10670. Сергей Соколов
10673. Алексей Хонин
1901. Neverwinter 2
23 БОТ - Пиксельный металлоискатель 00:25:10 14 чел. ★ 5 $
  На этом уроке мы начнём создавать пиксельный металлоискатель.
По цвету пикселей на экране мы будем восстанавливать значение открытой карты.
Ваша задача - довести его создание до логического завершения.
 
9858. Александр
7238. Константин
16457. sergeykin
10558. Иван Воронин
24 БОТ - Совместное фото 00:31:34 13 чел. ★ 5 $
  Считывание пикселя с экрана работает крайне медленно.
Вместо этого было решено сделать скриншот всей программы.
Чтобы дальнейшую обработку производить напрямую,
а не через медленные вызовы WinAPI методов.

Цель урока - создание "Совместного фото",
на котором будут все возможные варианты клеток в игре.
 
7238. Константин
429. Максим Базуев
10558. Иван Воронин
16457. sergeykin
25 БОТ - Гадание по фото 00:39:50 13 чел. ★ 5 $
  На этом уроке мы проанализируем созданную фотографию,
на предмет определения координат пикселей,
по цвету которых можно будет однозначно
определить значение в клетке сапёра.
 
10673. Алексей Хонин
7119. Новопашин Владимир
10494. Алексей В.
8275. Tekashnik
26 БОТ - Сканер минного поля 00:23:55 13 чел. ★ 5 $
  На этом уроке мы применим результаты анализа
в полевых условиях на запущенном минёре.
Сформируем карту по скриншоту минёра.
 
7238. Константин
5649. Максим Лапшинов
9858. Александр
7119. Новопашин Владимир
27 БОТ - Выход на финишную прямую 00:14:38 12 чел. ★ 5 $
  На этом уроке мы проверим функциональность частей, которые нам нужно объединить.
Доработаем функцию doMouseClick() чтобы она умела открывать
клетки и ставить флажки по указанным координатам клеток.
Посмотрим, что необходимо переносить из предыдущего проекта.
 
429. Максим Базуев
10670. Сергей Соколов
9858. Александр
7119. Новопашин Владимир
28 БОТ - Неуправляемый Интеллект 00:16:00 12 чел. ★ 5 $
  На этом уроке мы внесём все необходимые изменения и запустим алгоритм.
К сожалению, он зациклился, в результате чего пришлось выходить из системы.
Но первый результат обнадёживает - клики Анализатор делал верные.
 
10670. Сергей Соколов
429. Максим Базуев
429. Максим Базуев
5649. Максим Лапшинов
29 БОТ - Всё открыто! 00:23:23 12 чел. ★ 5 $
  На этом уроке мы завершим создание бота и
откроем все клетки минного поля с помощью нашего алгоритма.
 
10673. Алексей Хонин
9858. Александр
10494. Алексей В.
10494. Алексей В.
30 ФИНАЛЬНЫЙ УРОК 12 чел. ★ 5 $
  Поздравляю!
Ты одолел Боты Минёра.
Теперь ты заслуженный Минёр.

Запиши видеообзор своих программ.
Какой видеокурс ты будешь проходить следующим?
 
10670. Сергей Соколов
429. Максим Базуев
6452. Кирилл Шмойлов
10558. Иван Воронин
31 VIP - Хакерский подход 00:19:57 12 чел. ★ 5 $
  На этом уроке мы напишем хакерскую программу для вскрытия Сапёрного поля.
 
5649. Максим Лапшинов
10673. Алексей Хонин
8275. Tekashnik
6452. Кирилл Шмойлов
32 VIP - Жизнь у Сапёра 01:22:45 4 чел. ★ 5 $
  Напишите Игру жизнь.
Отобразите её на поле игры "Сапёр".
Для переключения клеток используйте клики ПКМ по клеткам.
 
6452. Кирилл Шмойлов
11589. Yefim
8275. Tekashnik
8275. Tekashnik
  Итого:   32 видеоурока общей продолжительностью 10 час. 56 мин. 4 чел. ★ 4.98  
  Финалисты:   Иван Воронин,   Кирилл Шмойлов,   Tekashnik,   Yefim .

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




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: видео записывать
что научился на этом курсе играть в сапера узнал как просто мины и числа возле мин считаются сделал сапера разобрался в алгоритмах обсчета как в сапере играть если простым способом неизвестно куда нажимать захват определенного окна узнавать про координаты окна и где она расположено делать скриншот окна обрабатывать скриншот определять числа и знаки по двум пикселям заставлять кликать мышь на по определенным координатам и еще много всего, кто дойдет до этого урока поимет :) Хорошее настроение и классные программки которые можно не только применить к саперу
Добавил интерактивную легенду найденных уникальных объектов игрового поля при парсинге эталонного скриншота. остальные нововведения, которые добавлялись в процессе разработок на каждом уроке см. видео =) з.ы. плюс недокументированные изменения и оптимизации.