# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
Мы начинаем создание популярной игры сапёр. Эта игра - отличное урпажнение для начинающего программиста. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: всё понятно Сложности: ничего сложного Комментарии: идем дальше... |
|||||
2 | ИГРА - Минная картотека |
1 тест |
|||
На этом уроке мы проанализируем блок-схему проекта подготовим форму для проекта, загрузим все картинки. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: идём дальше Сложности: идём дальше Комментарии: идём дальше |
|||||
3 | ИГРА - Классные мины |
|
|||
На этом уроке мы создадим класс Mines, в котором опишем все необходимые константы и напишем функции Init(), PlaceMines(), PlaceCounter(). Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: всё понятно, интересно заполнять количество мин рядом с ячейкой от мины, а не от ячейки Сложности: ничего сложного Комментарии: на скрине заполнение массива |
|||||
4 | ИГРА - Матрица картинок |
1 тест |
|||
На этом уроке мы сделаем вывод картинок на экран. Для этого мы напишем функцию PlaceBox(), которая будет создавать катинки и размещать их на панель. Потом мы создадим матрицу картинок. В конце урока мы сделаем автоматическое изменение картинок при ресайзинге формы. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 30 мин. [Показать отчёт] Научился: --- Сложности: --- Комментарии: --- |
|||||
5 | ИГРА - Карта минного поля |
|
|||
На этом уроке мы отобразим минное поле. Для это нам потребуется функция private Bitmap ShowPicture (int number) и private void ShowBox (int x, int y, int number) а также делегаты для их вызова из класса Mines. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 30 мин. [Показать отчёт] Научился: повторенье Сложности: ничего Комментарии: сумбурно конечно, если новичок, то придется может быть пересматривать, либо делать тупо последовательно как на уроке. но это и прелесть видео, его можно перематывать |
|||||
6 | ИГРА - Зелёный флаг |
1 тест |
|||
На этом уроке мы сделаем обработку клика правой кнопкой мышки для установки флага. Для этого нам потребуется сохранять и считывать координаты клетки в поле Tag каждого PictureBox. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 30 мин. [Показать отчёт] Научился: всё хорошо Сложности: скобки)) Комментарии: если мы создаем Poin, то может быть не надо после этого создавать int x = point.X; А сразу передавать point.X, point.Y В методе OpenBox, у нас процедура открытия плашки, значит она может работать ТОЛЬКО ЕСЛИ плашка закрыта, следовательно условие: if (top[x, y] != 101) return; Его одного должно быть достаточно для выхода. Или что-то ещё на неё собирается вещаться? |
|||||
7 | ИГРА - Алгоритмический подход |
1 тест |
|||
На этом уроке мы напишем основную часть алгоритма обработки левой кнопки мышки. Мы разделим эту задачу на несколько вспомогательных функций, которые вы можете реализовать самтостоятельно. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: --- Сложности: --- Комментарии: слабоват урок, больше похож на вводный, который бы надо в начале проводить, где какие методы делать, а самих методов и нет. |
|||||
8 | ИГРА - Бомбовые алгоритмы |
1 тест |
|||
На этом уроке мы допишем остальные функции и поиграем в созданную игру. Вам останется довести программу до ума, сделать сообщение об окончании игры и все остальные элементы игры, по желанию и по фантазии. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 30 мин. [Показать отчёт] Научился: посмотрел как можно реализовать функции, сравнил с моими вариантами, почти совпадает Сложности: всё понятно Комментарии: не стал делать особых доработок, потому что впереди много интересного на этом курсе! |
|||||
9 | ТРЕТЬФИНАЛЬНЫЙ УРОК |
без видео 1 тест |
|||
Поздравляю с завершением курса по созданию игры Сапёр. Однако создание игры на этом ещё не закончено. Твоя задача - придумать, что ещё можно/нужно добавить в игру и реализовать это. Запиши видеообзор своей игры и расскажи, что ты добавил в неё самостоятельно. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 15 мин. [Показать отчёт] Научился: сделал самостоятельную игру Сапер, можно самому играть Сложности: --- Комментарии: Ничего не сделал из дополнений, хочется посмотреть чем закончится курс, а после уже дополнять. Можно сделать подсчет очков, времени, сбор результатов всех игроков. Это самый минимум, потому что можно добавить анимацию, уровни сложности........ |
|||||
10 | ИИ - Как пройти игру |
1 тест |
|||
Мы начинаем создание Искусственного Интеллекта для игры Сапёр, для чего нам потребуется несколько этапов. 1. Описание и понимание идеи алгоритма. 2. Ручная проработка алгоритма на практике. 3. Создание класса для логики ИИ. 4. Внедрение его в наш проект для тестирования. 5. Создание бота для чужой игры Сапёр. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: --- Сложности: --- Комментарии: Варианты считывания и создания ИИ обсуждались в группе Формулистов, поэтому не буду повторяться, интересно посмотреть реализацию. |
|||||
11 | ИИ - Очевидные шаги |
1 тест |
|||
На этом уроке мы отработаем базовый, самый очевидный алгоритм разминирования, который основан на открытии очевидных клеток. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: --- Сложности: --- Комментарии: по самому очевидному алгоритму, где только 100% открытие |
|||||
12 | ИИ - Пересечение множеств |
|
|||
На этом уроке у нас будет матчасть, логика ИИ. Мы решим задачу с пересекающимися множествами через систему неравенств. Узнаем, в каком случае может быть единственный ответ, и как его просчитать простой формулой, чтобы разделить два пересекающихся множества на три непересекающихся. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: надеюсь я понял, потому что 15 это минимум сколько попыток я сделал, чтобы найти боле-менее подходящий вариант... Сложности: не нашел чтобы это работало, может быть после автоматизации смогу Комментарии: надо бы куда-нить вытащить эти формулы, или как я, записывать, иначе они теряются (не запоминаются) но в общем идея понятна, надо реализовывать! |
|||||
13 | ИИ - Класс группы |
|
|||
На этом уроке мы начнём создание проекта логики бота сапёра. Мы создадим структуру с координатами клеток и опишем поля и методы класса Group, в котором будут храниться логические группы минного поля. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: --- Сложности: --- Комментарии: Найти пересечение двух групп (последний из трех новых методов): Если не важно какие группы принимать, то почему не сделать публичным и статичным? А если пересечение с текущей группой (что более логично), то почему принимает две группы?! логичнее искать пересечение с текущей. |
|||||
14 | ИИ - Элементарные алгоритмы |
|
|||
На этом уроке мы реализуем два элементарных алгоритма определения пустых клеток и клеток с минами, а также проверим, как это работает. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: --- Сложности: ничего Комментарии: Отличный урок. Помогает постепенно разгоняться, и тем, кто плохо знаком с C#, понять откуда и что берется. Идём дальше. |
|||||
15 | ИИ - Жучкин алгоритм |
1 тест |
|||
На этом уроке мы внедрим наш элементарный алгоритм в рабочую программу и создадим кнопочку, по нажатию которой будут отмечаться все явные мины и пустые клетки. Минут 15 в уроке ушло на поиск ошибки. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 30 мин. [Показать отчёт] Научился: Объединять проекты Сложности: Необычно когда пишем для одного проекта, а потом эти методы используем в другом, обычно пишешь под конкретные задачи сразу в одном. Хороший опыт, надо развивать, делать методы универсальнее! Комментарии: Хороший урок, жаль что запись не ставили на паузу, ррраз, и сразу известна ошибка, хотя и так задумываешься самостоятельно почему не всё сразу работает. |
|||||
16 | ИИ - Вспомнить всё |
|
|||
На этом уроке мы вспомним и повторим, что было на прошлых уроках. Для чего нужен класс Group и как он используется для поиска мин на карте. В этом уроке мы почти ничего писать не будем, просто освежим всё в памяти. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 30 мин. [Показать отчёт] Научился: полезный получился урок, подвели, так сказать, промежуточную черту, что у нас уже реализовано. Сложности: понять чем отличается SortedSet от HashSet Комментарии: интереснее когда 200 мин и всё пол во флажках)) |
|||||
17 | ИИ - Операции со множествами |
5 тестов |
|||
На этом уроке мы напишем основные методы для работы со множествами: сравнение, пересечение и вычитание множеств. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 30 мин. [Показать отчёт] Научился: вспомнил отладку Сложности: ничего Комментарии: всё понятно. интересно посмотреть как Евгений реализовал дальше. |
|||||
18 | ИИ - Множественное тестирование |
|
|||
На этом уроке мы проведём тестирование созданных методов операций над множествами. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: --- Сложности: --- Комментарии: выполняли домашнее задание на уроке, нового ничего кроме домашнего задания, если развернуто писал отчет на предыдущий урок, то на этом ничего не увидишь, а так же на этот урок домашнее задание такое же. |
|||||
19 | ИИ - Ботовый алгоритм InterMines |
1 тест |
|||
На этом уроке мы наконец-таки напишем код алгоритма, о котором мы так много говорили в предыдущих уроках. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: --- Сложности: --- Комментарии: здорово, когда мы из текста пишем функции и они у нас работают точно так же, как и на бумаге! |
|||||
20 | ИИ - Открыть всё! |
|
|||
На этом уроке мы перепишем по новому алгоритм открытия всех клеток с использованием класса Group. Ура! Открываемость минного поля значительно возросла! Это успех :) Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: --- Сложности: --- Комментарии: Неплохой рефакторинг, помогающий более четко понять работу программы. Жаль не реализовали процентное вычисление неоткрытых ячеек. Зато со 100%-ми ячейками мы работаем "на ура!" |
|||||
21 | ВТОРОЙ ТРЕТЬФИНАЛЬНЫЙ УРОК |
без видео |
|||
Поздравляю с завершением создания Искуственного Интеллекта для решения Сапёра! Ты молодец, написал искуственный интеллект, и круто прокачал навыки алгоритмического мышления, которое так важно для программиста, молодец! Запиши видеообзор созданного бота и своей программы. Впереди внедрение ИИ Бота для сторонней игры. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: --- Сложности: --- Комментарии: Записывать видео вроде как бы и не о чем, ИИ у нас получился отличный, высчитывает почти всё, кроме процентного выяснения сколько в ячейке мин, и чем меньше, ту ячейку и открывать, что тоже было бы неплохо реализовать. Надеюсь в последующих уроках это будет добавлено, если нет, то прикручу после окончания самостоятельно. Классное дополнение, которое можно использовать в последствии для других программ, прям хочу посмотреть что же там в них, как реализовано!!! |
|||||
22 | БОТ - Отмычка сапёра |
4 теста |
|||
На этом уроке мы начнём создавать настоящего бота, который будет проходить сапёра из Windows XP. Мы найдём указатель на программу, вычислим координаты окна игры, запрограммируем несколько щелчков мышкой по ней. Для работы нам потребуется именно XP версия сапёра, её можно скачать здесь: www.videosharp.info/data/docs/winmine.exe. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: вспомнил как нажатия кнопок мыши генерировать, расчеты полей Сложности: домашнее задание, рассчитать каждую ячейку. Комментарии: я просто сделал функцию, которая заполняет флажками всё поле. если нужны более красивые вещи, то посмотрите курс Графоциклы (http://www.videosharp.info/video/task4) Там всё прекрасно показано, наглядно |
|||||
23 | БОТ - Пиксельный металлоискатель |
4 теста |
|||
На этом уроке мы начнём создавать пиксельный металлоискатель. По цвету пикселей на экране мы будем восстанавливать значение открытой карты. Ваша задача - довести его создание до логического завершения. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: пиксельному металлоискателю Сложности: искать нужные ячейки Комментарии: хороший урок, узнал много нового. стоящий курс! |
|||||
24 | БОТ - Совместное фото |
|
|||
Считывание пикселя с экрана работает крайне медленно. Вместо этого было решено сделать скриншот всей программы. Чтобы дальнейшую обработку производить напрямую, а не через медленные вызовы WinAPI методов. Цель урока - создание "Совместного фото", на котором будут все возможные варианты клеток в игре. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: вспомнил как сохранять картинки с экрана Сложности: всё понятно Комментарии: пока непонятен механизм "выбирание уникального пикселя", надеюсь на следующем уроке всё раскроется. p.s. приложил скрин с изображением флага, как просили |
|||||
25 | БОТ - Гадание по фото |
|
|||
На этом уроке мы проанализируем созданную фотографию, на предмет определения координат пикселей, по цвету которых можно будет однозначно определить значение в клетке сапёра. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 30 мин. [Показать отчёт] Научился: отличный метод, позволяющий искать уникальные пиксели на картинке. у меня по трем точкам тоже получилось, вместе со знаком вопроса. но раз он на курсе не рассматривается вернулся к "двухпиксельному" поиску без знака вопроса, хотя по трем пикселям тоже можно более уникально определять ячейки Сложности: программа уже вносит хаотичный характер, поэтому тяжелее уследить за общей линией программирования, но по отдельным методам всё здорово! +1 к моей копилке программ! Комментарии: sb.AppendLine("new ActorInfo { sx1 = " + sx1 + ", sy1 = " + sy1 + ", color1 = Color.FromArgb(" + list1[j].ToArgb() + "), sx2 = " + sx2 + ", sy2 = " + sy2 + ", color2 = Color.FromArgb(" + list2[j].ToArgb() + "), number = " + j + " },"); вот так можно добавлять в Структуру без написания Конструктора Это строка выводящая в StringBuilder, на скрине результат |
|||||
26 | БОТ - Сканер минного поля |
|
|||
На этом уроке мы применим результаты анализа в полевых условиях на запущенном минёре. Сформируем карту по скриншоту минёра. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: Пополнил свою коллекцию ещё одной наработкой, я думаю что однозначно буду ей пользоваться, и не только в рамках курса Сапера Сложности: найти ошибку в своем коде, пришлось ещё раз осмыслить что мы делали, более глубже понять, чем просто переписать, и тогда ошибка нашлась сама собой Комментарии: а вот что делать с минами?! как программа определит что игра закончилась и она ошиблась?! |
|||||
27 | БОТ - Выход на финишную прямую |
1 тест |
|||
На этом уроке мы проверим функциональность частей, которые нам нужно объединить. Доработаем функцию doMouseClick() чтобы она умела открывать клетки и ставить флажки по указанным координатам клеток. Посмотрим, что необходимо переносить из предыдущего проекта. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: ничему Сложности: всё делалось, урок полезен, если был на вебинарах и забыл что было неделю назад. если урок делал 10 минут назад или хотя бы вчера, то всё это под рукой Комментарии: не буду соединять, оставлю на следующий урок, сделать вместе с Евгением Витольдовичем |
|||||
28 | БОТ - Неуправляемый Интеллект |
|
|||
На этом уроке мы внесём все необходимые изменения и запустим алгоритм. К сожалению, он зациклился, в результате чего пришлось выходить из системы. Но первый результат обнадёживает - клики Анализатор делал верные. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: хи-хи. Теперь у меня бот сам решает задачки по Саперу)) Сложности: --- Комментарии: всё отлично. на скрине "мои рекорды" |
|||||
29 | БОТ - Всё открыто! |
|
|||
На этом уроке мы завершим создание бота и откроем все клетки минного поля с помощью нашего алгоритма. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: всё что делали на этом уроке мне захотелось сделать ещё на прошлом, поэтому просто прослушал Сложности: --- Комментарии: умопомрочительные рекорды на скрине)) осталось попробовать самостоятельно реализовать такой же механизм, но уже для других задач |
|||||
30 | ФИНАЛЬНЫЙ УРОК |
без видео |
|||
Поздравляю! Ты одолел Боты Минёра. Теперь ты заслуженный Минёр. Запиши видеообзор своих программ. Какой видеокурс ты будешь проходить следующим? Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: --- Сложности: --- Комментарии: Отличный курс, много нового, чтобы получать данные с экрана, анализировать и реагировать на изменения, происходящие на экране. Всё самое интересное внутри программы, оформление внешнее по минимуму, поэтому считаю что видеообзор записывать не целесообразно, чтобы не делать медвежью услугу остальным, кто не прошел и не получил удовольствие от увиденного! Программа со 100% шансов отмечает в Сапере мины. |
|||||
31 | VIP - Хакерский подход |
|
|||
На этом уроке мы напишем хакерскую программу для вскрытия Сапёрного поля.
Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 16 мин. [Показать отчёт] Научился: вообще начинают юные программисты именно с такого варианта, а уж потом более красивый, с подсчетом вариаций... Сложности: высчитать начальную точку отсчета Комментарии: 500 мину за одну секунду!!! |
|||||
32 | VIP - Жизнь у Сапёра |
|
|||
Напишите Игру жизнь. Отобразите её на поле игры "Сапёр". Для переключения клеток используйте клики ПКМ по клеткам. Отчёт отправил: 6452. Кирилл Шмойлов Выполнено за 1 час. 16 мин. [Показать отчёт] Научился: ну вот и я узнал про игру Жизнь)) Сложности: --- Комментарии: я сделал чтобы все шаги таймер отстреливал и пользователю было видно как развивается жизнь. то что если уходит налево и возвращается справа, также сверху-вниз это реализовал ещё при написании по уроку. осталось найти интересные решения) |
|||||
Итого: 32 видеоурока |
10 час. 56 мин. 24 теста |
7 чел. | |||
Финалисты: Иван Воронин, Кирилл Шмойлов, Tekashnik, Yefim, Максим Лапшинов, MaxB, Алексей В. . |