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

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

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

  • Олимпиадная задача - создать алгоритм ИИ для игры в Морской бой.
    Подробности на видео.
  • Дата отправки отчёта: 4 сентября 2016 г.
  • Задание выполнено: за 4 час. 20 мин.
  • Чему научился: Познакомился в библиотекой консольного вывода ncurses.
  • Что было сложным: Реализовать алгоритм.
  • Комментарии: На первом скриншоте результат работы алгоритма для прямого расположения кораблей и ниже для случайного. На втором скриншоте при запуске с командой строки задаю количество тестов случайных расположений, нахожу минимальное, среднее и максимальное количество шагов. Спасибо за отличный урок, хорошо попрактиковался:)
  • Оценка видео-уроку:
Отчёт от 7276 за Морской Бой / Олимпиада - Создание ИИ - Стратегия


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




Оцени работу

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

10558. Иван Воронин
Иван Воронин
ответить
→  Ильшат  # Морской Бой / Олимпиада - Создание ИИ - Стратегия / 2016-09-05 00:34

Отличный урок, отличный результат, Молодец =)


  • Отчёт оценивали:
    5649Максим Лапшинов+1   24Олюшка+1   4699Сергей Витальевич+1   10494Алексей В.+1   459Сергей Сергеевич+1   10157Кирилл Лебедев+1   11147Сергей0   1Евгений Волосатов+1   10390Amerigo+1   11017Владимир Петреченко0   4467Alcatraz+1   10670Сергей Соколов+1   10558Иван Воронин+1   7238Константин+1   5257Антон+1   4004Елена+1   6452Кирилл Шмойлов+1   10365Rita+1   689Igorenzia+1   7119Новопашин Владимир+1   4992Николай+1   8959Максим Саратов+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 алгоритм)