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

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

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

  • Олимпиадная задача - создать алгоритм ИИ для игры в Морской бой.
    Подробности на видео.
  • Дата отправки отчёта: 25 ноября 2015 г.
  • Задание выполнено: за 3 час. 12 мин.
  • Чему научился: Алгоритмам ИИ.
  • Что было сложным: реализация алгоритма ИИ.
  • Комментарии: Все еще глючит. Буду потом дорабатывать.
    Спасибо, зацепило! ;)
  • Оценка видео-уроку:
Отчёт от 6391 за Морской Бой / Олимпиада - Создание ИИ - Стратегия




Оцени работу

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

2146. Иван
Иван
ответить
→  Владимир  # Морской Бой / Олимпиада - Создание ИИ - Стратегия / 2015-11-25 16:32

Отлично получается! За один день мне тогда не удалось решить эту задачку, В тестах все время находилось что-то такое, что надо было исправлять.


  • Отчёт оценивали:
    6987MichGar+1   7976Сергей Владимирович+1   7985Андрей +1   5882Александр Широков+1   1Евгений Волосатов+1   4889Валера Луцевич+1   7645Александр Львович+1   689Igorenzia+1   6925Артём+1   2639Морозов Юрий Александрович+1   4395Денис+1   3747Сергей+1   1901Neverwinter 2+1   2146Иван+1   6080annaka+1   6203Николай (nick27m)+1   459Сергей Сергеевич+1   4004Елена+1   8274Виктор 0   6458Илья+1   4182Farid+1  

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




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

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

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

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