<< Вернуться на главную

Сибирская чума(2006г)

Конкурс состоялся во время новогоднего, компъютерного фестиваля 08.01.07. Условия конкурса можно посмотреть на страничке подготовительного этапа
А вопросы, заданые во время предварительного этапа можно глянуть здесь.

Во время очного этапа было предложено 3-и варианта задания.

1) Нормальный вариант(Вирусов и эритроцитов поровну)
2) Вариант только с одними вирусами
3) Вариант где вирусов очень мало, но за каждого дают 10 очков

Варианты для DELPHI
Варианты для TBPAS5
Варианты для TBPAS7

На очный этап прибыло 6 человек. Маловато конечно, видимо лет через 10 экономистов и юристов будет пруд пруди, а вот с программистами будут серьезные проблемы :-)

Но уж зато все кто пришел, оказались на должном уровне! Борьба была такая, что старкрафт вместе с кваком отдыхают! :-) Все присутствующие получили настоящее удовольствие.

Для разбора полетов, остановимся на варианте номер 2. На этом примере основные проблемы выявились особенно ярко.

Сначала народ развивал уничтожение и добился в этом значительных успехов :-) В основном программы на этом этапе развивались в сторону различных вариантов расположения нанороботов на поле. Кто-то построил их крестом, кто-то вытянул в цепочку, а кто-то просто равномерно распределил нанороботов по всему полю.

С уничтожением вирусов практически все справились прекрасно. 500 нанороботов буквально за 300 ходов уничтожили всех вирусов и 700 ходов просто гуляли по пустому полю не принося очков.

Тогда участники поняли, что для победы необходимо уничтожать вирусов постепенно, давая им размножаться :-) Может с медицинской точки зрения это не совсем этично :-) но конкурс это конкурс. С этого момента борьба за очки перешла в другую плоскость.

Вот например алгоритм, в соответствии с которым нанороботы сначала размножились, потом выстроились в одну линию и медленно (ровно за 1000 ходов), толпой, прошли по всему полю. Посмотреть что получилось можно здесь (только программа сделана так, что после запуска, нужно выбрать средний алгоритм, тогда она заработает) Вот эта программа

Интересное решение, но только 3-е место! А казалось-бы что еще можно придумать? И ведь придумали! Вот например оказалось, что если нанороботов сделать поменьше, например в районе 200, и добиться, чтобы они равномерно "прореживали" поле... Что получилось, можно посмотреть здесь (2-е место!).

Первое место занял алгоритм, в котором при помощи специального коэффициента, регулировалось степень агрессивности нонороботов. Универсальность алгоритма, позволила сосредоточиться но точном подборе параметров поведения роботов для каждого случая. И в итоге - первое место! Эта программа писалась на Паскале, и поэтому мы даем ее вместе с исходником.(1-е место!).

Но самый лучший результат получился, у участника, выступающего вне конкурса. У него малое (но достаточное) количество роботов сочеталось с грамотным распределением их по полю и перемещением. Вот эта программа!

Как все выглядело, можно глянуть здесь (увы некоторые фотографии получились размытыми)

А вот и сводная таблица результатов.

Фамилия имя Вариант 1 Вариант 2 Вариант 3 Итог Место
Долгополов Андрей 955 2194 3320 6469 3 (10-11кл)
Балабанов Василий 873 2353 3030 6256 1 (8-9кл)
Русанов Иван 812 2436 2600 5848 лауреат
Козырев Владимир 1175 2902 4390 8467 1 (10-11кл)
Дудкин Иван 1131 2892 4080 8103 2 (10-11кл)
Дудкин Борис 1097 3509 4170 8776 Вне конкурса

Все участники финального, очного этапа получили грамоты, и ценные призы. Администрация "звездного мира" и отдела информационных технологий СЮТ благодарит всех за проявленное мужество и выносливость. Такая борьба многого стоит! И даже не так важно кто занял какое место, все противники были великолепны. А мозги нужно обязательно тренировать, иначе они имеют тенденцию к усыханию :-)