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

Формула программиста
основатель — Волосатов Евгений Витольдович
Приходи на 3-дневный мастер-класс по C#
Вебинар «Мастер класс - две программы» начнётся через 22 час. 40 мин.

Боты Сапёра / ИИ - Как пройти игру

  • Мы начинаем создание Искусственного Интеллекта для игры Сапёр,
    для чего нам потребуется несколько этапов.
    1. Описание и понимание идеи алгоритма.
    2. Ручная проработка алгоритма на практике.
    3. Создание класса для логики ИИ.
    4. Внедрение его в наш проект для тестирования.
    5. Создание бота для чужой игры Сапёр.
  • Дата отправки отчёта: 13 сентября 2016 г.
  • Задание выполнено: за 10 мин.
  • Чему научился: повторение пройденного материала
  • Что было сложным: найти время
  • Комментарии: по поводу внутри игрового алгоритма: пробегать по всему полю в поиске цифр, если нашли клетку с цифрой, то считаем сколько вокруг неё флажков и не открытых клеток, потом отнимаем от этой цифры количество флажков и если это равно 0, то кликаем по цифре, если же не равно 0, смотрим сравниваем полученное число с количеством не открытых клеток, если оно совпало, то ставим флажки на неоткрытых клетках вокруг цифры и так до тех пор, пока не кончатся клетки для обработки подобным образом.

    по поводу считывания данных с чужого сапёра, вариантов несколько, самый простой это анализ клеток поля по цвету который присутствует в них. обычно в сапёрах цифры разноцветные, если же такой способ сложен, можно использовать матрицы пикселов для сравнения типо топологии клеток, подобный способ проблем обычно не имеет, есть ещё один способ, написать хук код, чтобы внедрится в код приложения и получить доступ к массиву данных а там уже дело техники =)
  • Оценка видео-уроку:
Отчёт от 10558 за Боты Сапёра / ИИ - Как пройти игру




Оцени работу

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

7119. Новопашин Владимир
Новопашин Владимир
ответить
→  Иван Воронин  # Сапёр на C# / Как сделать бота / 2016-09-14 06:38

ZX Spectrumненько!



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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: 1. считать карту сапера в матрицу с элементами(перечисление) 2. в сапере от виндовс первый ход всегда выигрышный, поэтому совершить первый ход мышью 3. после каждого хода перечитывать поле сапера 4. для каждой открытой клетки попробовать проставить флаги вокруг нее(например если 1 и все кроме одной клетки цифры, то ее обозначить флагом) 5. пункт четыре делать рекурсивно считывать через скриншоты игры и искать на ней возможные картинки

Научился: Когда-то я достаточно хорошо играл в "Сапер", и мой личный рекорд на маленькой карте с 10-ю бомбами - 3 секунды. Среднее время - 7-9 сек.
Трудности: У меня нет четкого представления об алгоритме. Пройти Сапер гораздо легче, чем объяснить как именно это надо делать. Как правило, я начинал с открытия 4 углов. Если и попадалась бомба, то на ранней стадии игры. В отношении алгоритма - сначала необходимо осуществлять перебор и анализ всех приоткрытых клеток и помечать флажков те места, в которых точно есть бомбы. В том случае, если число флажков рядом с клеткой совпадает с числом в самой клетке - открываем все остальные соседние клетки и двигаемся вперед.