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

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

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

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

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


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




Оцени работу

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

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

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


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

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


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

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


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

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


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

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

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


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

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


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

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



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





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

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

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

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


Научился: понял как в уроке спроектировали массивы и все продумали
все понятно и интересно


Научился: Использование статичной матрицы - быстрое и эффективное решение, но не универсальное. Сам вначале хотел так сделать, но потом подумал зачем нам тогда ширина и высота моря? Поэтому программно формирую отдельные списки выстрелов для поиска 4-х палубников, 3-х палубников и т.д. Т.е. выстрелили, удалили из списка координаты и забыли. А так интересно посмотреть ход мыслей другого человека. )