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

Формула программиста
основатель — Волосатов Евгений Витольдович
Yii2 + PHP = 25 уроков с 80% скидкой
Вебинар «Yii + PHP = Завершение» начнётся через 1  день 13 час. 00 мин.

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

  • На участие в олимпиаде было прислано 10 работ.
    В этом видео мы проводим тестирование всех программ.
    Домашнее задание - составить словесный алгоритм ИИ.
  • Дата отправки отчёта: 19 ноября 2015 г.
  • Задание выполнено: за 1 час. 10 мин.
  • Чему научился: Просмотрел работы участников, очень все понравилось! Все молодцы!
  • Что было сложным: Ничего сложного.
  • Комментарии: Мне больше всего понравился алгоритм Orange, потому что на большом количестве тестов он явно показывает свою эффективность.

    Словесный алгоритм для игры "Морской Бой":
    Стрелять случайно по полю, но если нашли корабль, то стреляем влево, вправо, вверх или вниз, чтобы "убить" его целиком. Понятное дело, что по тем клеткам, по которым стреляли, уже не будет производить выстрел и также будем запоминать те клетки, которые обрамляют корабли, что в них стрелять тоже не надо.
  • Оценка видео-уроку:
Отчёт от 2773 за Морской Бой / Олимпиада - Самый лучший алгоритм




Оцени работу

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

2146. Иван
Иван
ответить
→  Никита  # Морской Бой / Олимпиада - Самый лучший алгоритм / 2015-11-20 00:18

Да, в олимпиаде надо было не просто словесный алгоритм написать, а действительно его реализовать. На это мне одного дня не хватило. Но как же это здорово - самому его реализовать,  да хоть самый простой.


24. Олюшка
Олюшка
ответить
→  Никита  # Морской Бой / Олимпиада - Самый лучший алгоритм / 2015-11-19 19:18

Никита, хорошо поработал и описал алгоритм, согласна с тобой, ребята все Молодцы!


  • Отчёт оценивали:
    3747Сергей+1   791Валерий Жданов+1   6458Илья+1   6452Кирилл Шмойлов+1   6391Владимир+1   24Олюшка+1   4004Елена+1   6203Николай (nick27m)+1   6925Артём+1   7308AZANIR+1   1Евгений Волосатов+1   7440homerSimpson0   7901Влад+1   429Максим Базуев+1   5760Мариша +1   6987MichGar+1   2146Иван+1   7645Александр Львович+1   5419Роман+1   6080annaka+1   5705Андрей +1  

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




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

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

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

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