Серебро в Code of Kutulu. Золото пока закрыто, в серебре я болтаюсь в самом низу. Такое впечатление что просто случайно хорошо подобрал эвристики и с противниками немного повезло. Ну и исправил много багов.
Выводы:
- Надо писать юниты. Ошибка может закрасться в любой мелочи. Думаешь что код должен работать определённым образом - напиши на это юнит-тест!
- Хорошо отлаженный код с простой логикой лучше продвинутого, но написанного абы как.
- Хорошая визуализация помогает быстро визуально выхватывать странное поведение и необходимые прорехи в логике. В Kutulu у меня лабиринт преобразовывается в граф, и для визуализации я написал метод вывода графа с весами в формате DOT. Для небольших лабиринтов можно копировать dot-файлы прямо из окна вывода ошибок.
Есть впечатление что чтобы продвинуться выше в Code of Kutulu, обязательно придётся делать симуляцию и минимакс. Ну что ж, если так - это будет интересно. А пока жду третьего числа и открытия серебра в Legends of Code and Magic. Там надо написать минимакс хотя бы для одного боя.