Олимпиадная задача - создать алгоритм ИИ для игры в Морской бой. Подробности на видео.
Дата отправки отчёта:
29 мая 2018 г.
Задание выполнено: за
1 день 8 час. 50 мин.
Чему научился:
Отличный формат уроков! Надо раобраться в чужом коде и свой написать. Что может быть реальнее на практике?
Так как мы можем стрелять только один раз, а цикл стрельбы реализован извне, то необходимо как-то запоминать выстрелы. Реализовал через list, если выстрелили по точке, то ее сразу удаляем. Кроме того, есть еще статусы игры. Т.е. мы просто стреляем или находимся в режиме добивания, находимся мы в поиске 4-х палубника или 3-х палубника и т.д. Нужно было еще как-то помечать клетки вокруг убитого корабля, жаль что нельзя было использовать карту попадания класса море, хотел унаследоваться от него, потом понял, что видимо это не по правилам, так что пришлось свою карту делать, засунул в конструктор, чтобы она автоматом проинициализировалась.
Что было сложным:
В каждом курсе нахожу что-то новое для себя. У каждого есть своя изюминка. )
Научился: Всему :)
По количеству вынесенной для меня пользы это задача оказалась продуктивнее чем все ранее решенные задачи вместе взятые. Безусловно этот факт обусловлен моим малым опытом и небольшим объёмом имеющихся знаний, но количество проблем с которыми я столкнулся, объём новой информации которую пришлось добыть и изучить для их решения, говорит только об исключительной полезности подобных задач. Трудности: Банально не хватило времени для реализации всех задумок. Не имея опыта решения подобных задач заложил неправильное время на её решение. В результате израсходовал его нерационально. Сначала несколько часов с тетрадью и карандашом подбирал оптимальный вариант стрельбы. Потом переключился в Студию и тут выяснилось, что я не совсем понимаю логику программы (ввиду скудности имеющихся знаний). Вместо того чтобы сразу приступить к реализации задуманного решения пришлось потратить несколько часов (!) на разбор логики программы, и выяснение способов вызова необходимых мне методов из уже имеющихся классов. В какой-то момент решил прекратить участие, т.к. не удавалось до конца разобраться. Закончилась суббота, сегодня на свежую голову с утра пришло озарение. По ходу пьесы пришлось упрощать решение, пошаговая отладка, сроки горят... красота :) Отличная задача, позволяет новичкам проверить себя в боевых условиях.