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

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

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

  • Олимпиадная задача - создать алгоритм ИИ для игры в Морской бой.
    Подробности на видео.
  • Дата отправки отчёта: 17 марта 2015 г.
  • Задание выполнено: за 12 час. 00 мин.
  • Чему научился: надеюсь, что стал лучше понимать взаимодействие классов
  • Что было сложным: понять, как работает программа
  • Комментарии: Пока в моем коде получается много мусора.
  • Оценка видео-уроку:
Отчёт от 2146 за Морской Бой / Олимпиада - Создание ИИ - Стратегия




Оцени работу

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

1. Евгений Волосатов
Евгений Волосатов
ответить
→  Иван  # Морской Бой / Олимпиада - Морской бой - ИИ / 2015-03-17 23:10

Ты прислал свою работу мне на почту?



Начинаем практику по языку 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 алгоритм)