# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
Мы начинаем создание популярной игры сапёр. Эта игра - отличное урпажнение для начинающего программиста. Отчёт отправил: 24765. Anatoli Выполнено за 2 час. 42 мин. [Показать отчёт] Научился: Много уже играл сапера, очень нравиться игра, даже уже сам несколько раз для себя писал эту игру. |
|||||
2 | ИГРА - Минная картотека |
1 тест |
|||
На этом уроке мы проанализируем блок-схему проекта подготовим форму для проекта, загрузим все картинки. Отчёт отправил: 24765. Anatoli Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Проект подготовлен. Картинки нарисовал. |
|||||
3 | ИГРА - Классные мины |
|
|||
На этом уроке мы создадим класс Mines, в котором опишем все необходимые константы и напишем функции Init(), PlaceMines(), PlaceCounter(). Отчёт отправил: 24765. Anatoli Выполнено за 26 мин. [Показать отчёт] Научился: Приступили к написанию класса игры. Написаны методы размещения мин на поле. |
|||||
4 | ИГРА - Матрица картинок |
1 тест |
|||
На этом уроке мы сделаем вывод картинок на экран. Для этого мы напишем функцию PlaceBox(), которая будет создавать катинки и размещать их на панель. Потом мы создадим матрицу картинок. В конце урока мы сделаем автоматическое изменение картинок при ресайзинге формы. Отчёт отправил: 24765. Anatoli Выполнено за 49 мин. [Показать отчёт] Научился: Нарисовали в форме поле ячеек, при изменении размера фориы, перерисовывается поле игры. |
|||||
5 | ИГРА - Карта минного поля |
|
|||
На этом уроке мы отобразим минное поле. Для это нам потребуется функция private Bitmap ShowPicture (int number) и private void ShowBox (int x, int y, int number) а также делегаты для их вызова из класса Mines. Отчёт отправил: 24765. Anatoli Выполнено за 52 мин. [Показать отчёт] Научился: Вывели на экран минное поле. |
|||||
6 | ИГРА - Зелёный флаг |
1 тест |
|||
На этом уроке мы сделаем обработку клика правой кнопкой мышки для установки флага. Для этого нам потребуется сохранять и считывать координаты клетки в поле Tag каждого PictureBox. Отчёт отправил: 24765. Anatoli Выполнено за 34 мин. [Показать отчёт] Научился: Написали метод отметить ячейку флагом и открыть ячеку. |
|||||
7 | ИГРА - Алгоритмический подход |
1 тест |
|||
На этом уроке мы напишем основную часть алгоритма обработки левой кнопки мышки. Мы разделим эту задачу на несколько вспомогательных функций, которые вы можете реализовать самтостоятельно. Отчёт отправил: 24765. Anatoli Выполнено за 1 час. 5 мин. [Показать отчёт] Научился: Поготовили функцию открыть ячейку. |
|||||
8 | ИГРА - Бомбовые алгоритмы |
1 тест |
|||
На этом уроке мы допишем остальные функции и поиграем в созданную игру. Вам останется довести программу до ума, сделать сообщение об окончании игры и все остальные элементы игры, по желанию и по фантазии. Отчёт отправил: 24765. Anatoli Выполнено за 2 час. 59 мин. [Показать отчёт] Научился: Добавил таймер, счетчик отмеченных мин, определить победа или поражение. |
|||||
9 | ТРЕТЬФИНАЛЬНЫЙ УРОК |
без видео 1 тест |
|||
Поздравляю с завершением курса по созданию игры Сапёр. Однако создание игры на этом ещё не закончено. Твоя задача - придумать, что ещё можно/нужно добавить в игру и реализовать это. Запиши видеообзор своей игры и расскажи, что ты добавил в неё самостоятельно. Отчёт отправил: 24765. Anatoli Выполнено за 18 мин. [Показать отчёт] Научился: Добавил немного от себя это таймер это сколько флагов это первый ход без мины, это автоматически отмечает флажки. Видеообзор: kMLpzqwJaXw |
|||||
10 | ИИ - Как пройти игру |
1 тест |
|||
Мы начинаем создание Искусственного Интеллекта для игры Сапёр, для чего нам потребуется несколько этапов. 1. Описание и понимание идеи алгоритма. 2. Ручная проработка алгоритма на практике. 3. Создание класса для логики ИИ. 4. Внедрение его в наш проект для тестирования. 5. Создание бота для чужой игры Сапёр. Отчёт отправил: 24765. Anatoli Выполнено за 44 мин. [Показать отчёт] Научился: В сапера уже наигрался много. ИИ игры сапер должен знать размер поля, потом некоторые клетки должны быть раскрыты. Получить поле и расскрытые ячейки. И уже сканируя каждую ячейку искать по имеющимся паттернам возможные комбинации местоположения мин. Разбить по приоритету паттерны и сначала просмотреть с самой большой вероятностью и потом все больше и больше спускаясь по таблице паттернов до самых рискованных и так расскрыть поле с минами. |
|||||
11 | ИИ - Очевидные шаги |
1 тест |
|||
На этом уроке мы отработаем базовый, самый очевидный алгоритм разминирования, который основан на открытии очевидных клеток. Отчёт отправил: 24765. Anatoli Выполнено за 18 мин. [Показать отчёт] Научился: Только по этим правилам можно легко проходить поле 8х8 10 мин и 16х16 40 мин, а вот уже эксперта 30х16 99 мин уже сложнее, в этой игре уже комбинаций 50х50 очень много и приходиться просчитывать вероятный ход или угадывать. На скрине по этим правилам смог чуть больше половины мин расскрыть, дальше уже нужно угадывать. |
|||||
12 | ИИ - Пересечение множеств |
|
|||
На этом уроке у нас будет матчасть, логика ИИ. Мы решим задачу с пересекающимися множествами через систему неравенств. Узнаем, в каком случае может быть единственный ответ, и как его просчитать простой формулой, чтобы разделить два пересекающихся множества на три непересекающихся. Отчёт отправил: 24765. Anatoli Выполнено за 9 час. 7 мин. [Показать отчёт] Научился: Наконец получилось пройти сапер на поле 16х30 99 мин. На это ушло много часов. Пытался вникнуть в рассуждения и как-то увидеть доступные варианты, но таких вариантов мало и все-равно включается обезьяна и опять клацает куда-то без анализа. |
|||||
13 | ИИ - Класс группы |
|
|||
На этом уроке мы начнём создание проекта логики бота сапёра. Мы создадим структуру с координатами клеток и опишем поля и методы класса Group, в котором будут храниться логические группы минного поля. Отчёт отправил: 24765. Anatoli Выполнено за 8 час. 46 мин. [Показать отчёт] Научился: Описали структуру Coord и класс Group который и будет хранить и вычислять какие открывать и помечать флажками ячейки. |
|||||
14 | ИИ - Элементарные алгоритмы |
|
|||
На этом уроке мы реализуем два элементарных алгоритма определения пустых клеток и клеток с минами, а также проверим, как это работает. Отчёт отправил: 24765. Anatoli Выполнено за 38 мин. [Показать отчёт] Научился: Написаны методы добавить элемент, гетеры и сеттеры. |
|||||
15 | ИИ - Жучкин алгоритм |
1 тест |
|||
На этом уроке мы внедрим наш элементарный алгоритм в рабочую программу и создадим кнопочку, по нажатию которой будут отмечаться все явные мины и пустые клетки. Минут 15 в уроке ушло на поиск ошибки. Отчёт отправил: 24765. Anatoli Выполнено за 1 час. 6 мин. [Показать отчёт] Научился: Добавили в игру кнопку подсказка, которая открывает и отмечает флагом доступные для открытия ячейки в которых из двух клеток, если цифра не открытых ячейках равно открытой цифре, тогда эту клетку можно отметить флагом или открыть и потом повторить пока не будут исчерпаны все варианты. |
|||||
16 | ИИ - Вспомнить всё |
|
|||
На этом уроке мы вспомним и повторим, что было на прошлых уроках. Для чего нужен класс Group и как он используется для поиска мин на карте. В этом уроке мы почти ничего писать не будем, просто освежим всё в памяти. Отчёт отправил: 24765. Anatoli Выполнено за 40 мин. [Показать отчёт] Научился: Вспомнили еще раз как работает открытие ячеек и пометка флажками. |
|||||
17 | ИИ - Операции со множествами |
5 тестов |
|||
На этом уроке мы напишем основные методы для работы со множествами: сравнение, пересечение и вычитание множеств. Отчёт отправил: 24765. Anatoli Выполнено за 7 час. 25 мин. [Показать отчёт] Научился: Написали несколько функций пересечение, одинаковые, вычесть. |
|||||
18 | ИИ - Множественное тестирование |
|
|||
На этом уроке мы проведём тестирование созданных методов операций над множествами. Отчёт отправил: 24765. Anatoli Выполнено за 13 мин. [Показать отчёт] Научился: Протестировали ранее написаный код. |
|||||
19 | ИИ - Ботовый алгоритм InterMines |
1 тест |
|||
На этом уроке мы наконец-таки напишем код алгоритма, о котором мы так много говорили в предыдущих уроках. Отчёт отправил: 24765. Anatoli Выполнено за 1 час. 21 мин. [Показать отчёт] Научился: Написали метод InterMines. Все еще вникаю в эту магию вычислений, где статичекие методы вычисляют данные им экземпляры того же класса. Где создается новая координата после вычисления двух предыдущих, в голову трудно это вмещается, но вот комп проглатывает все это легко. Все это в цикле будет повторяться, пока не будет вычеслены все варианты. |
|||||
20 | ИИ - Открыть всё! |
|
|||
На этом уроке мы перепишем по новому алгоритм открытия всех клеток с использованием класса Group. Ура! Открываемость минного поля значительно возросла! Это успех :) Отчёт отправил: 24765. Anatoli Выполнено за 2 час. 14 мин. [Показать отчёт] Научился: Переписали метод поиска мин автоматически, теперь уже ищется больше комбинаций, но все равно еще требуется ручное вмешательство, чтобы собрать все поле. |
|||||
21 | ВТОРОЙ ТРЕТЬФИНАЛЬНЫЙ УРОК |
без видео |
|||
Поздравляю с завершением создания Искуственного Интеллекта для решения Сапёра! Ты молодец, написал искуственный интеллект, и круто прокачал навыки алгоритмического мышления, которое так важно для программиста, молодец! Запиши видеообзор созданного бота и своей программы. Впереди внедрение ИИ Бота для сторонней игры. Отчёт отправил: 24765. Anatoli Выполнено за 1 мин. [Показать отчёт] Научился: Записал видеобзор. Видеообзор: tqJiB5LWMC4 |
|||||
22 | БОТ - Отмычка сапёра |
4 теста |
|||
На этом уроке мы начнём создавать настоящего бота, который будет проходить сапёра из Windows XP. Мы найдём указатель на программу, вычислим координаты окна игры, запрограммируем несколько щелчков мышкой по ней. Для работы нам потребуется именно XP версия сапёра, её можно скачать здесь: www.videosharp.info/data/docs/winmine.exe. |
|||||
23 | БОТ - Пиксельный металлоискатель |
4 теста |
|||
На этом уроке мы начнём создавать пиксельный металлоискатель. По цвету пикселей на экране мы будем восстанавливать значение открытой карты. Ваша задача - довести его создание до логического завершения. |
|||||
24 | БОТ - Совместное фото |
|
|||
Считывание пикселя с экрана работает крайне медленно. Вместо этого было решено сделать скриншот всей программы. Чтобы дальнейшую обработку производить напрямую, а не через медленные вызовы WinAPI методов. Цель урока - создание "Совместного фото", на котором будут все возможные варианты клеток в игре. |
|||||
25 | БОТ - Гадание по фото |
|
|||
На этом уроке мы проанализируем созданную фотографию, на предмет определения координат пикселей, по цвету которых можно будет однозначно определить значение в клетке сапёра. |
|||||
26 | БОТ - Сканер минного поля |
|
|||
На этом уроке мы применим результаты анализа в полевых условиях на запущенном минёре. Сформируем карту по скриншоту минёра. |
|||||
27 | БОТ - Выход на финишную прямую |
1 тест |
|||
На этом уроке мы проверим функциональность частей, которые нам нужно объединить. Доработаем функцию doMouseClick() чтобы она умела открывать клетки и ставить флажки по указанным координатам клеток. Посмотрим, что необходимо переносить из предыдущего проекта. |
|||||
28 | БОТ - Неуправляемый Интеллект |
|
|||
На этом уроке мы внесём все необходимые изменения и запустим алгоритм. К сожалению, он зациклился, в результате чего пришлось выходить из системы. Но первый результат обнадёживает - клики Анализатор делал верные. |
|||||
29 | БОТ - Всё открыто! |
|
|||
На этом уроке мы завершим создание бота и откроем все клетки минного поля с помощью нашего алгоритма. |
|||||
30 | ФИНАЛЬНЫЙ УРОК |
без видео |
|||
Поздравляю! Ты одолел Боты Минёра. Теперь ты заслуженный Минёр. Запиши видеообзор своих программ. Какой видеокурс ты будешь проходить следующим? |
|||||
31 | VIP - Хакерский подход |
|
|||
На этом уроке мы напишем хакерскую программу для вскрытия Сапёрного поля. | |||||
32 | VIP - Жизнь у Сапёра |
|
|||
Напишите Игру жизнь. Отобразите её на поле игры "Сапёр". Для переключения клеток используйте клики ПКМ по клеткам. |
|||||
Итого: 32 видеоурока |
10 час. 56 мин. 24 теста |
7 чел. | |||
Финалисты: Иван Воронин, Кирилл Шмойлов, Tekashnik, Yefim, Максим Лапшинов, MaxB, Алексей В. . |