"Bash.org.ru IT Happens Истории ## 3601 – 3700" - читать интересную книгу автора (Bash.org.ru IT)

#3619: Сбиты прицелы

16:45 13.07.2010, IT happens


Писали с однокурсниками в качестве дипломной работы «игры для программистов». Основная идея была заимствована из Robocode.


Вкратце: игроку необходимо написать класс на языке C++, унаследованный от предоставленного ему класса. Методами этого класса реализовывается логика поведения танка, который ездит по полю брани, подбирает различные бонусы, стреляет в противников, умирает и т. п. У кого больше очков в конце боя, тот и победил. Далее исходники компилируются на стороне сервера, и игрок может сразиться с танками противников. Для удобства клиентская часть позволяла сохранять проведённые бои для последующих повторов.


Итак, ночь перед дипломом. Нужно сделать презентацию. Чтобы не быть голословными, решили написать пару ботов и сделать видео с их участием. Один бот должен был просто ездить и собирать бонусы, другой — только стрелять по другим танкам, игнорируя бонусы, третий — ездить полностью рандомно. Написали, запустили. Выяснилось, что правильно ездит только рандомный бот (и то лишь потому, что его трудно проверить). На часах уже пять утра, а ошибку найти не получается. Решили, что глюк у нас где-то в расчётах движения, и оставить следует только «рандомщика», а остальных просто не показывать.


Комиссия была в восторге — всем поставили по пятёрке. Только недавно товарищ скинул мне сохранённый бой, где все трое ездят «честно».


— Разобрался с физикой? — спрашиваю.

— Нет.

— Понял, как по существующей физике ездить?

— Нет.

— А что тогда случилось? Почему они вдруг так хорошо работать стали?

— Да у нас угол до цели неправильно считался. Исправил — и сами поехали...


Невольно вспоминается шутка о том, что русский программист может написать правильный код даже для в корне неправильного проекта.