Все как то забываю написать пару слов о данном соревновании ;-((
Это для меня первое подобное испытание, к сожалению совершенно неуспешное!
Поначалу
задание сбило столку, потому как в основном приходилось работать по ТЗ, а тут "Разберись с чем-то и сделай нечто". Это даже хорошо, а то направление мышления имеет свойство шаблонизироваться и кристализоваться теряя былую гибкость. В общем большой Respect организаторам за это. Потихоньку играясь с сервером и перечитывая задания додумался распаковать JARик, в нем то и было содержимое Java сервера. Но в зашифрованном и обфуцированном состоянии. Быстро нарыл NetBeans 6.5 и пачку декомпиляторов. К концу первых суток сдампил расшифрованные классы. Как оказалось в последствии, при загрузке сервера расшифровывалсиь не все классы из массива L. Вывод: Всегда нужно сверять входные даннные и результат. Зря чтоль сделал вывод списка расшифрованнных классов в консоль.
Удачная расшифровка и декомпиляция увела в сторону копания в исходниках, на этом было потеряно три дня ;-[[ Но потеряно не зря, все паролики из engine были найдены + найдены зашифрованнные токены. Ещё день впустую ушел на попытку расшифровать токены ;-(
В какой то момент, надоело ковыряться в исходниках и я начал решать задания. Первым и последним заданием было расшифровать текст шифр цезаря ;-(
До программинга бота я так не дошел, хоть и нарыл описание протокола на второй день, однако без CFG и DMA токенов это бесполезняк.
Вывод:
1. Если что-то можно декомпилировать, то это нужно декомпилировать;
2. Всегда нужно сверять входные даннные и результат;
3. Java вполне интересный язык и NetBeans неплохая IDE;
4. Нельзя зацикливатья на одном направлении - если есть несколько путей решения задачи;
5. Для командного взаимодействия удобны GoogleDocs (KnowledgeBase), SVN (SourceControl) и наверное Jabber (Chat);
6. Good judgement comes from experience, and experience comes from bad judgement. Freed Brooks
В общем буду готовиться к ICFPC 2009.