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

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

Морской Бой / Олимпиада - Создание ИИ - Шаблон ударов

  • Алгоритм искусственного интеллекта для игры в Морской бой состоит из двух этапов:
    1. нанесение ударов по шаблону для поиска 4-палубного и 2-палубных.
    2. добивание раненного корабля и пометка клеток вокруг потопленного корабля.
    На этом уроке разберём и реализуем первый этап.
  • Дата отправки отчёта: 5 сентября 2016 г.
  • Задание выполнено: за 1 час. 30 мин.
  • Чему научился: Повторил создание и обработку двумерных массивов.
  • Что было сложным: Небольшая ошибка, опечатка в границах цикла при инициализации двумерного массива.
  • Комментарии: Интересный алгоритм, случайный выбор из матрицы put ячейки с наибольшим значением веса.
  • Оценка видео-уроку:
Отчёт от 7276 за Морской Бой / Олимпиада - Создание ИИ - Шаблон ударов


Отчёт от 7276 за Морской Бой / Олимпиада - Создание ИИ - Шаблон ударов




Оцени работу

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

7276. Ильшат
Ильшат
ответить
→  Валерий Жданов  # Морской Бой / Олимпиада - Создание ИИ - Шаблон ударов / 2016-09-05 23:36

Нравится то, что мы сначала подготовливаем желаемые данные, которые можем варьировать в зависимости от стратегии поиска)


7276. Ильшат
Ильшат
ответить
→  Алексей Хонин  # Морской Бой / Олимпиада - Создание ИИ - Шаблон ударов / 2016-09-05 23:34

Спасибо, Алексей, интересные уроки.


791. Валерий Жданов
Валерий Жданов
ответить
→  Ильшат  # Морской Бой / Олимпиада - Создание ИИ - Шаблон ударов / 2016-09-05 22:42

да,алгоритм хороший


10673. Алексей Хонин
Алексей Хонин
ответить

7276. Ильшат
Ильшат
ответить
→  Иван Воронин  # Морской Бой / Олимпиада - Создание ИИ - Шаблон ударов / 2016-09-05 17:50

Да, так и есть, перед каждым выстрелом динамически формируется матрица put, в которой хранятся веса. В алгоритме два режима - в первом мы ищем по все карте 4-палубники, заполняем матрицу put по приоритетным(диагональным) направлениям из статичного массива. После того, как попали по кораблю переходим во второй режим, в матрицу put устанавливаются только те ячейки, которые находятся в непосредственности близости от подбитой ячейки. А далее, независимо от режима алгоритма, из полученной матрицы put уже случайно выбирается ячейка.


10558. Иван Воронин
Иван Воронин
ответить
→  Ильшат  # Морской Бой / Олимпиада - Создание ИИ - Шаблон ударов / 2016-09-05 17:36

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


7276. Ильшат
Ильшат
ответить
→  Иван Воронин  # Морской Бой / Олимпиада - Создание ИИ - Шаблон ударов / 2016-09-05 17:30

В следующем уроке было показано, как применить его для добивания раненых  кораблей)


10558. Иван Воронин
Иван Воронин
ответить
→  Ильшат  # Морской Бой / Олимпиада - Создание ИИ - Шаблон ударов / 2016-09-05 17:24

Да, алгоритм интересный, Молодец!


  • Отчёт оценивали:
    11017Владимир Петреченко0   459Сергей Сергеевич+1   10670Сергей Соколов+1   6452Кирилл Шмойлов+1   5257Антон+1   7119Новопашин Владимир+1   4992Николай+1   4467Alcatraz+1   7645Александр Львович+1   1Евгений Волосатов+1   5649Максим Лапшинов+1   10558Иван Воронин+1   10759Виталя+1   4004Елена+1   10494Алексей В.+1   11051Dima+1   9323Алексей+1   10673Алексей Хонин+1   791Валерий Жданов+1   1232Фомичева Наталья+1   10390Amerigo+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Узнал, как реализовать эффективный алгоритм выбора точек по шаблону, для выстрелов по кораблям.
нет
Научился: Элегантной реализации алгоритма
Трудности: После вчерашних многочасовых усилий по созданию рабочего кода сегодня все понятно.
Отличный пример реализации алгоритма. Моя вчерашняя работа не так элегантна) Интересно, как реализовано добивание, поскольку мои основные трудности были именно с ней.