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

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

Морской Бой / Олимпиада - Самый лучший алгоритм

  • На участие в олимпиаде было прислано 10 работ.
    В этом видео мы проводим тестирование всех программ.
    Домашнее задание - составить словесный алгоритм ИИ.
  • Дата отправки отчёта: 12 декабря 2015 г.
  • Задание выполнено: за 3 час. 00 мин.
  • Чему научился: Искать разные способы решения поставленной задачи.
    Сравнивать эффективность разных алгоритмов с помощью C#.
    Эффективно играть в Морской бой. :-)
  • Что было сложным: Придумать свой эффективный алгоритм, отличающийся от предложенных. Пока не удалось.
    Предположения:
    - задействовать random, чтобы защититься от искусственно подобранных "контррасстановок";
    - перед каждым выстрелом находить возможное расположение кораблей;
    - стремиться к равномерному обстрелу вертикалей и горизонталей;
    - возможно, использовать заготовленные шаблоны совместно с random.
  • Комментарии: Понравился алгоритм Orange.
    Свой пока сделаю простым.
    1. Создадим матрицу 10 × 10, в которой номерами установим порядок обстрела всех точек.
    - Правило обстрела выберем по диагоналям с постепенно уменьшающимся интервалом.
    - Оставшиеся часть матрицы заполним, отразив первую зеркально.
    2. Будем последовательно перебирать в заданном порядке я чейки для обстрела.
    3. Стреляем, если ячейка имеет статус "неизвестно".
    4. Если ранили, то добиваем корабль.
    - проверяем ячейки по горизонтали и по вертикали от раненой;
    - если снова попали, запоминаем направление, а соседние ячейки в другом измерении помечаем "мимо";;
    - если после этого промах - добиваем в обратную сторону;
  • Оценка видео-уроку:
Отчёт от 7980 за Морской Бой / Олимпиада - Самый лучший алгоритм




Оцени работу

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

7980. Сергей Лузум
Сергей Лузум
ответить
→  Neverwinter 2  # Морской Бой / Олимпиада - Самый лучший алгоритм / 2015-12-13 11:03

Понятно!))) Разные цвета появлялись почти случайно. Я для себя помечал небольшие группы одним цветом, чтобы самому отслеживать равномерность и заполнения поля числами. А потом для облегчения повторного поиска внизу добавил шкалу с соответствием числовых диапазонов цветам.


1901. Neverwinter 2
Neverwinter 2
ответить
→  Сергей Лузум  # Морской Бой / Олимпиада - Самый лучший алгоритм / 2015-12-13 08:58

Здорово! Попробовал искать цифры 1, 2, 3, 4, 5,.... из-за смены цветов это оказалось непросто! Ищешь то старый цвет и думаешь - ну где же где же 13.... Красиво, молодец!


4814. Дмитрий
Дмитрий
ответить
→  Сергей Лузум  # Морской Бой / Олимпиада - Самый лучший алгоритм / 2015-12-13 05:23

Хороший алгоритм.
Понравилось, что достаточно быстро проверяются клетки на граничных линиях, на 5-12 ходах.
Опытные игроки отдают под бой многопалубные корабли и оставляют одиночным целых 60 клеток в распоряжение.
Чем раньше уничтожишь многопалубники, тем лучше.


2146. Иван
Иван
ответить
→  Сергей Лузум  # Морской Бой / Олимпиада - Самый лучший алгоритм / 2015-12-13 01:35

Красота! Очень здорово придумал.


24. Оля
Оля
ответить
→  Сергей Лузум  # Морской Бой / Олимпиада - Самый лучший алгоритм / 2015-12-12 23:53

Сергей, это очень круто! Вижу как ты старательно и усердно проработал урок! Молодец! :)


6391. Владимир
Владимир
ответить

  • Отчёт оценивали:
    6958Кирилл+1   1Евгений Витольдович+1   6391Владимир+1   3664данила+1   4992Николай+1   3747Сергей+1   8118Юрий +1   6458Илья+1   5649Максим Лапшинов+1   6203Николай (nick27m)+1   6925Артём+1   2639Морозов Юрий Александрович+1   7276Ильшат+1   5219Nromik+1   24Оля+1   2146Иван+1   4814Дмитрий+1   6080annaka+1   1901Neverwinter 2+1   7645Александр Львович+1  

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




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

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

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

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