"Bash.org.ru IT Happens Истории ## 3601 – 3700" - читать интересную книгу автора (Bash.org.ru IT)
#3619: Сбиты прицелы
16:45 13.07.2010, IT happens
Писали с однокурсниками в качестве дипломной работы «игры для программистов». Основная идея была заимствована из Robocode.
Вкратце: игроку необходимо написать класс на языке C++, унаследованный от предоставленного ему класса. Методами этого класса реализовывается логика поведения танка, который ездит по полю брани, подбирает различные бонусы, стреляет в противников, умирает и т. п. У кого больше очков в конце боя, тот и победил. Далее исходники компилируются на стороне сервера, и игрок может сразиться с танками противников. Для удобства клиентская часть позволяла сохранять проведённые бои для последующих повторов.
Итак, ночь перед дипломом. Нужно сделать презентацию. Чтобы не быть голословными, решили написать пару ботов и сделать видео с их участием. Один бот должен был просто ездить и собирать бонусы, другой — только стрелять по другим танкам, игнорируя бонусы, третий — ездить полностью рандомно. Написали, запустили. Выяснилось, что правильно ездит только рандомный бот (и то лишь потому, что его трудно проверить). На часах уже пять утра, а ошибку найти не получается. Решили, что глюк у нас где-то в расчётах движения, и оставить следует только «рандомщика», а остальных просто не показывать.
Комиссия была в восторге — всем поставили по пятёрке. Только недавно товарищ скинул мне сохранённый бой, где все трое ездят «честно».
— Разобрался с физикой? — спрашиваю.
— Нет.
— Понял, как по существующей физике ездить?
— Нет.
— А что тогда случилось? Почему они вдруг так хорошо работать стали?
— Да у нас угол до цели неправильно считался. Исправил — и сами поехали...
Невольно вспоминается шутка о том, что русский программист может написать правильный код даже для в корне неправильного проекта.