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

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

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

Морской Бой / Олимпиада - Создание ИИ - Стратегия

  • Олимпиадная задача - создать алгоритм ИИ для игры в Морской бой.
    Подробности на видео.
  • Дата отправки отчёта: 11 октября 2017 г.
  • Задание выполнено: за 3 час. 33 мин.
  • Чему научился: Попрактиковался
  • Что было сложным: Очень долго не мог найти время на прохождение урока ;)
  • Комментарии: Очень классно! Я сделал 4 алгоритма! Один класс, и функция которыя определяет текущий режим (какой алгоритм будет работать). Вообщем сделал 4 режима и нашёл крупненькую уязвимость в коде ;)))
    1) StupidRandom - Просто псевдо рандомные выстрелы в море ~90 ходов
    2) SmartRandom - Умные выстрелы (если попал, то добивает и обделяет корабль, чтобы около него не стрелять) ~50
    3) Hacker(=20 ходов) - Он знает где корабли и чётко по ним стреляет - это я сделал не поиском сингнатур в памяти(как Orange), а обычной уязвимостью - суть в том, что если к нам пришёл объект - Море sea, то почему бы его не переопределить, как Редактор sea? Я просто сделал функцию, которая получает корабли хитрым способом, по номерам и кладёт их в массив - вот это важную роль играет - ((Редактор)sea).КартаКораблей(Точка) - возвращает int(номер корабля). Хитрооо...
    Прикольно получилось и сделал быстро :)
    4) StupidHacker - "притупленный" хакер - стреляет точно, но иногда "притупляется" - 1 к 3. В среднем ~40 ходов.
    Мне очень понравился результат.
    Больше всего времени потратил - на второй алгоритм ;)
    Больше всего мне понравился 3 ;))))))))))))))))
    (На скриншоте 2 алгоритм)
  • Оценка видео-уроку:
Отчёт от 12230 за Морской Бой / Олимпиада - Создание ИИ - Стратегия


Отчёт от 12230 за Морской Бой / Олимпиада - Создание ИИ - Стратегия




Оцени работу

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

8275. --
Tekashnik
Tekashnik
ответить

10558. --
Иван Воронин
Иван Воронин
ответить
→  LINKI  # Морской Бой / Олимпиада - Создание ИИ - Стратегия / 2017-10-12 09:23

Молодец, продолжай в том же духе.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  LINKI  # Морской Бой / Олимпиада - Создание ИИ - Стратегия / 2017-10-13 16:41

Great. It is not so hard to make such "hacker" variant, Much harder to program shots to finish the ship :)
there is no russian keyboard.



  • Отчёт оценивали:
    12230LINKI+1   16004Сергей0   6452Кирилл Шмойлов+1   8275Tekashnik+1   9901Neo+1   10558Иван Воронин+1   11582Родион+1   9156Dimon+1   4395Денис+1   1Евгений Волосатов+1   14854Madoschi0   3747Сергей+1   12450Татьяна +1  

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





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

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

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

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


Научился: придумывать стратегию ИИ и реализовывать ее
Трудности: принять меру своих возможностей ))
хорошее упражнение. попытаться стоит)


Научился: Всему :) По количеству вынесенной для меня пользы это задача оказалась продуктивнее чем все ранее решенные задачи вместе взятые. Безусловно этот факт обусловлен моим малым опытом и небольшим объёмом имеющихся знаний, но количество проблем с которыми я столкнулся, объём новой информации которую пришлось добыть и изучить для их решения, говорит только об исключительной полезности подобных задач.
Трудности: Банально не хватило времени для реализации всех задумок. Не имея опыта решения подобных задач заложил неправильное время на её решение. В результате израсходовал его нерационально. Сначала несколько часов с тетрадью и карандашом подбирал оптимальный вариант стрельбы. Потом переключился в Студию и тут выяснилось, что я не совсем понимаю логику программы (ввиду скудности имеющихся знаний). Вместо того чтобы сразу приступить к реализации задуманного решения пришлось потратить несколько часов (!) на разбор логики программы, и выяснение способов вызова необходимых мне методов из уже имеющихся классов. В какой-то момент решил прекратить участие, т.к. не удавалось до конца разобраться. Закончилась суббота, сегодня на свежую голову с утра пришло озарение. По ходу пьесы пришлось упрощать решение, пошаговая отладка, сроки горят... красота :)
Отличная задача, позволяет новичкам проверить себя в боевых условиях.