Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Боты Сапёра / БОТ - Пиксельный металлоискатель

  • На этом уроке мы начнём создавать пиксельный металлоискатель.
    По цвету пикселей на экране мы будем восстанавливать значение открытой карты.
    Ваша задача - довести его создание до логического завершения.
  • Дата отправки отчёта: 29 сентября 2016 г.
  • Задание выполнено: за 7 час. 00 мин.
  • Чему научился: Повторение пройденного
  • Что было сложным: найти время
  • Комментарии: Создал в фотошопе иконку для форм и бинарника.
    Добавил метод определения цвета пикселя на экране.
    Метод определения наличия запущенного процесса игры Сапёр вынесен в отдельную функцию (так как надо не только для начала работы, но и для проверки наличия процесса окна игры Сапёр в циклах бота).
    Добавлен метод определения объектов на игровом поле игры Сапёр.
    Добавлен progressBar для визуализации процесса выполнения циклов.
    Внедрена игра Жизнь для демонстрации на игровом поле Сапёра.
    Добавлена кнопка запуска с данными о скорости циклов и времени между ними для игры Жизнь.
    Добавлены trackBars для настройки скорости и времени между циклами игры Жизнь.
    При изменении скорость и времени циклов, информация о текущих значениях отображается на кнопке запуска игры Жизнь.
    Теперь бот заглядывает в меню игры для проверки: установлена возможность ставить Вопросики или нет.
    Если нужно нарисовать картинку, то бот проверяет возможность устанавливать Вопросики, если данная возможность отключена, он её включает.
    Если запущена игра Жизнь, бот проверяет возможность установки Вопросиков, если возможность активна, то он её отключает.
    Если в процессе  анализа и подготовки игрового поля Сапёр, для запуска игры Жизнь, бот находит Вопросики, он их убирает.
    Теперь размеры рисунка относительны размеров игрового поля Сапёр, чтобы ромбик вписывался и был всегда по центру.
    Добавлены textBoxes для сбора данных об игровых объектах на поле Сапёра.
    Добавлена анимация заполнения textBoxes.
    Игра жизнь использует динамическое программирование (не зря выпит литр кофе в своё время).
    з.ы.
    Что меня с подвигло на сие деяние? Пунктик с тремя звёздочками в задании к этому уроку =) Я, понимая, что это тривиальная задача, не мог не решить её, оставалось за малым, найти время, в течении дня несколько раз отвлекался по делам, но всё же успел доделать к концу дня.
  • Оценка видео-уроку:
  • Видеозапись: https://youtu.be/ODYr6nRgIt4
Отчёт от 10558 за Боты Сапёра / БОТ - Пиксельный металлоискатель


Отчёт от 10558 за Боты Сапёра / БОТ - Пиксельный металлоискатель




Оцени работу

 
Сохранить страницу:

11017. --
Владимир Петреченко
Владимир Петреченко
ответить
→  Иван Воронин  # Сапёр на C# / VIP. Пиксельный металлоискатель / 2016-09-29 22:57

Ваш отчет мотивирует двигаться дальше в программировании.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Владимир Петреченко  # Сапёр на C# / VIP. Пиксельный металлоискатель / 2016-09-29 22:57

Это же прекрасно =) рад это слышать


10494. --
Алексей В.
Алексей В.
ответить
→  Иван Воронин  # Сапёр на C# / VIP. Пиксельный металлоискатель / 2016-09-30 02:19

Отлично Иван, когда только успеваешь?


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Иван Воронин  # Сапёр на C# / VIP. Пиксельный металлоискатель / 2016-09-30 09:11

Иван, результат просто завораживающий.
Отличная музыка, прекрасный кодинг,
проработаны все этапы управления
программой Minesweeper.
Молодец! Я в шоке.
Культурном.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Иван Воронин  # Сапёр на C# / VIP. Пиксельный металлоискатель / 2016-09-30 09:14

Однако, на "тривиальную" задачу ушло много часов!


10670. --
Сергей Соколов
Сергей Соколов
ответить
→  Иван Воронин  # Сапёр на C# / VIP. Пиксельный металлоискатель / 2016-09-30 10:35

Круто получилось!!!


10558. --
Иван Воронин
Иван Воронин
ответить
→  Евгений Волосатов  # Сапёр на C# / VIP. Пиксельный металлоискатель / 2016-09-30 11:00

на внедрение игры Жизнь ушло 30 минут, остальное время косметика и бегатня


10558. --
Иван Воронин
Иван Воронин
ответить
→  Алексей В.  # Сапёр на C# / VIP. Пиксельный металлоискатель / 2016-09-30 11:16

да вот параллельно с работой делаю, дал задачу на выполнение и пока там думает, занимаюсь уроком, если бы я не экспериментировал, времени бы уходило меньше, но мне же надо поиграться =) чтобы протестировать все нюансы и навести марафет


10558. --
Иван Воронин
Иван Воронин
ответить
→  Сергей Соколов  # Сапёр на C# / VIP. Пиксельный металлоискатель / 2016-09-30 11:18

Спасибо, самому урок понравился и задача внедрения игры Жизнь пришлась в тему =)


8959. --
Максим Саратов
Максим Саратов
ответить

7238. --
Константин
Константин
ответить
→  Иван Воронин  # Сапёр на C# / VIP. Пиксельный металлоискатель / 2016-09-30 18:45

У меня нет слов - супер. Ссылку на статью не напомнишь ?


10558. --
Иван Воронин
Иван Воронин
ответить

7238. --
Константин
Константин
ответить

10558. --
Иван Воронин
Иван Воронин
ответить
→  Константин  # Сапёр на C# / VIP. Пиксельный металлоискатель / 2016-09-30 20:48

интересно, почитаю на досуге =) спасибо



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





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

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

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

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


Научился: Читать пиксели на экране. Вернул форму в проект и с ее помощью проверил алгоритм перевода цвета в номер клетки
Трудности: Определить точно точки зондирования



Научился: Научился с помощью функций WinAPI определять цвет пикселя в сапера.
Трудности: Самым сложным для меня было найти цвет семерки и восьмерки - до сих пор не нашел.
Нашел цвет следующих объектов: 1 - 255,0,0,255 2 - 255, 0, 128, 0 3 - 255, 0 ,0 , 255 4 - 255, 0,0,128 5 - 255, 128,0,0 6 - 255, 0,128,128 пустая - 255,192,192,192 flag - 255,255,0,0