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

Внимание конкурс

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

ВНИМАНИЕ! Очный этап состоится 8-го января в кабинете 2-27 (СЮТ) в 11:00. Если желающих будет слищком много, то будут приглашены 10 самых лучших (по очкам).

Итак слушайте задание:

Человечеству угрожает очередная опасность! В результате случайных мутаций, вирус сибирской язвы скрестился с вирусом бубонной чумы (новую болезнь так и назвали "СИБИРСКАЯ ЧУМА"). Пациенты мрут как мухи и никакие антибиотики не помогают!

Единственная надежда - новейший наноробот, которого только что изготовили наши гениальные ученые. Если впрыснуть его в кровь то в соответствии с заложенной в него программой он сможет уничтожая вирусы и не трогая клетки крови - эритроциты, спасти пациента.

Наноробот может передвигаться, делать анализ встретившихся объектов, уничтожать электрическим разрядом все вокруг себя. Робот конечно не очень сложен, но зато он может размножаться! А это означает, что при грамотном управлении впрыснув только одного такого робота, можно многократно размножить его.

Правда система управления не резиновая, и больше 500 роботов она не тянет! Но больше и не надо, а то вместо лечения ваши роботы только и будут размножаться!

Мы тут небольшую програмку для вникания в проблему написали. Можно скачать и пощупать.
ВОТ ОНА!(135кБ)

Просто наша программа не так эффективна, как хотелось. Так что вам предлагается ее улучшить.

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

Оценивать будем по набранным очкам. Вы должны набрать маскимальное количество очков за 1000 ходов. За один ход вы можете подать по одной команде каждому из ваших нанороботов. Тоесть как только вы делаете ход роботом, которым уже ходили, так считается, что это уже следующий ход.

Общее количество роботов, находящихся в вашем распоряжении хранится в глобальной переменной KOL_ROB.
По каждому роботу вам доступны текущие координаты, и массив из 4-х датчиков, которые хранятся в массиве роботов.
Так например можно получить данные о любом роботе
MR^[1].X и MR^[1].Y - координаты первого робота
MR^[1].MD[1] - Верхний датчик первого робота
MR^[1].MD[2] - Правый датчик первого робота
MR^[1].MD[3] - Нижний датчик первого робота
MR^[1].MD[4] - Левый датчик первого робота
При обычном ходе датчики показывают или 0 (пусто) или 255(что-то есть). Но при использовании команды "АНАЛИЗ". Датчики показывают 0-пусто 1-вирус 2-эритроцит 3-робот. Жаль только, что на анализ приходится тратить ход. Управление производится при помощи подпрограммы HOD_R(N_ROB,KOM) где:
N_ROB - номер робота (от 1 до KOL_ROB)
KOM - Команда
1 - Вверх
2 - Вправо
3 - Вниз
4 - Влево
5 - провести анализ окружающей обстановки
6 - уничтожить электрическим импульсом все вокруг себя
7 - породить еще одного робота.

А вот и исходники. Ну а если еще какой язык программирования нужен, срочно связывайтесь с нами, если есть желающие, то и для других языков можно расстараться :-). Не забудьте, что на современных компъютерах паскаль в графике работает неустойчиво (возможны проблемы с отображением текста). Так что закачивайте, пробуйте, если что не понятно, задавайте вопросы по почте.

Контактный адрес администрации сайта -

Исходники для TP7(11кБ)
Исходники для TP5(11кБ)
Исходники для DELPHI(13.6 кБ)

А еще, просили исходники для Си. Ну так мы и расстарались. Но это пока вне конкурса, потому, что у нас в классе на очный этап BUILDERa нету :-(. Хотя конечно можно обсудить (может вы свой комп на очный этап принесете). А вне конкурса пожалуйста!
Исходники для С++BUILDER 6.0(13.6 кБ)

Поскольку желающих на Си мало, не стали алгоритмы там для примера городить, но основные принципы, выдача команд и анализ параметров робота там есть. В общем смотрите!

Дополнительно сообщаем, что эритроциты и вирусы в капельке крови тоже перемещаются (правда очень медленно) приблизительно в 16 раз медленнее наноробота. Кроме того вирусы тоже размножаются. А вот наши нанороботы не вечны, иногда помирают ( в среднем живут около 300 ходов). однако концентрация вирусов, их скорость, время жизни нанороботов, это параметры, которые на очном этапе слегка изменятся, чтобы вы могли продемонстрировать как ваша программа адаптируется к разным условиям.

Итак сначала регистрируетесь у нас на страничке пишете и пробуете свою программу. чем больше вам удастся набрать очков, тем лучше. Десять лучших в двух номинациях (8-9й класс и 10-11 класс) во время новогоднего компютерного фестиваля приходят на очный этап. И там в классе за 4-ре часа дорабатывают свои программы под слегка измененные условия. победит тот, кто наберет максимальное количество очков. Как всегда гарантируем справедливое судейство. У кого больше очков (без нарушений) тот и победит. Теперь о нарушениях. Запрещается редактировать все кроме подпрограммы управления нанороботами. Запрещается использовать недокументированные возможности. Борьба должна быть честной и равной!

Конкурс предназначен только для учащихся г.Железногорска. Остальные могут принять участие только вне конкурса. Для регистрации необходимо заполнить анкету.
АНКЕТА ЗДЕСЬ!

На сегодня зарегистрировались:
Козырев Владимир 11кл
Дудкин Иван 10кл
Русанов Иван 11
Балабанов Василий 9
Никифоров Евгений 10кл

Вне конкурса выступают:

Дудкин Борис КГТУ (1 курс)
Егоров Артем -

По результатам ожидаются призы (по номинациям) 2-а первых места, 2 -а вторых и 2-а третьих.

В качестве призов предлагаются Флешки, наушники, колонки, мышки. Призы предлагается высыпать на стол, и победители просто подойдут и выберут что им нужно. Право подойти к столу с призами первым получит первое место в номинации 10-11 классы, затем 1-е место в номинации 8-9 классы, затем 2-е от 10-11 и так далее. Конечно мы считаем, что обе номинации равнозначны, нл у 8-и классников еще все впереди, а 11-ти классники участвуют последний раз, поэтому заранее утверждаем такой порядок.