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

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

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

  • На участие в олимпиаде было прислано 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   6452Lik_Kirill+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#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Не совсем понял цель урока
Трудности: ничего
Не совсем понял как оформлять отчет, поэтому пишу тут Понравился алгоритм с номером 4362 НО если бы я делал алгоритм и смог бы выполнить его, то я бы реализовал случайные выстрелы с добиванием, на первый взгляд кажется что он легкий и эффективный)
Научился: Просмотрела разные алгоритмы и их загрузку через абстрактный класс.
Трудности: Понять как это все работает. И алгоритмы и их загрузка.
Алгоритмы public и orange. Как я поняла, к любому из представленных алгоритмов можно найти более оптимальные расстановки. Есть мысль использовать в программе 2-3 алгоритма, выбирая номер алгоритма рандомно. Алгоритм. Найти все точки, где может быть четырехпалубный корабль. Выделить их в массив. Стрелять рандомно по свободным, пока есть не проверенные. Если корабль подбит, пометить соседние ячейки как пустые. Если ранен, рандомно проверить во всех направлениях, пока не останется одно. Добиваем корабль. Здесь можно сделать проверку какие корабли остались и определить может ли корабль быть размещен горизонтально/вертикально, сколько. И стрелять по наиболее удачной ячейке. Далее проверяем на двухпалубные корабли. Опять выделяем места, где они могут быть размещены и стреляем рандомно, пока не проверим все. Оставшиеся однопалубники ищем рандомно из числа не проверенных ячеек.