<< Вернуться на главную Охотник за мегабайтамиПриближается новый год, и вместе с ним приближается новогодний конкурс программистов. В этом году спонсором конкурса выступает ОАО ИСС и тематика конкурса соответствующая. Традиционно, задание выдаем за месяц до конкурса, чтобы борьба была честной и справедливой. Итак: Все мы любим интернет, и чем он быстрее, тем, как известно, интереснее :-). Ну так вот, имеем N спутников связи (в тестовой задаче их 10, но как всегда на очном этапе количество спутников может измениться). И 4-ре приемные антенны (тоже переменная величина). Главная задача, накачать с этих спутников как можно больше вожделенных мегабайт.
Как и всякая модель, наша имеет некоторые непринципиальные отличия от реального процесса. Так например область видимости спутников имеет размер 640 на 480. Антенны наводятся только в одной плоскости. Но в остальном все очень похоже :-). Но есть в этом деле и некоторые сложности. Так например:
Выглядит все примерно так: Итак, приступаем собственно к заданию. Для разных облочек программирования (C++BUIlDER, DELPHI2007, LAZARUS) мы подготовили проекты, в которых все уже реализовано :-) правда работает не очень оптимально. Ваша задача - улучшить наведение антенн и скачать как можно больше мегабайт. Кто больше накачает, тот и победитель.
Проект для Delphi7(CodeGear) Во всех проектах управление антеннами производится через функцию UPR, в которую передается Номер управляемой антенны, номер спутника, с которого будет вестись прием и угол наведения. (кстати углы наведения могут быть от 0 до 180). 0 - антенна смотрит влево, 180 - антенна смотри вправо, ну а 90 - вертикально вверх. Например если вы вызываете подпрограмму управления "UPR(1,2,90);" то это значит, что на первую антенну подается команда занять позицию 90 градусов. Правда это не значит, что антенна сразу займет указанное положение, дело в том, что у каждой антенны имеется определенная скорость (у первой - 1 градус на 1 ход , у второй 2-а и.т.д.). Так что может даже случиться, что антенна не успеет за низколетящим спутником. Тут нужно соображать :-) по низколетам применять быстрые антенны, а по высотным аппаратам можно и более медленные.
Для отрисовки можно вызвать подпрограмму "OTRIS"
Для получения данных используются подпрограммы и функции: Как всегда, конкурс состоится в 2-а этапа. На первом этапе (аж до нового года) все вникаем в проблему, ищем решения, пробуем, задаем любые вопросы. Попутно вылавливаем разные баги (чтобы потом сюрпризов на очном этапе было поменьше). И пишем свои версии программ
Ну а 9-го Января в 12:00 В кабинете 2-27 СЮТа состоится очный этап. Если народу будет слишком
много, то участвовать будут только лучшие. Для чего необходимо принести готовые программы с
заочного этапа. Сражаться будем в 2-х номинациях На очном этапе необходимо будет адаптировать свою программу под слегка измененные условия. Обещаем, что на очном этапе ожидаются сюрпризы! Но я думаю, что для тех, кто напишет программу на заочном этапе и разберется во всем сам, ничего страшного не будет :-). Будет предложено 3-и варианта задачи и победитель определится просто по сумме всех набранных очков. Может меняться количество спутников и антенн, скорость и информативность спутников, а так же местоположение антенн. И, вероятно, на очном этапе усложнится само наведение (потребуется большая точность). Не будут менятся интерфейсы подпрограмм и функций, Не будет меняться распределение скоростей антенн (первая - 1-н градус за ход, вторая - 2-а градуса и.т.д.
Желающим принять участие в конкурсе очень желательно зарегистрироваться.
Чтобы заранее "застолбить место на очном этапе.
Кстати, дизайн игры и конкурса можно менять. Общий фон хранится в файле "FON.BMP", размером 640 на 480.
А спрайты (кроме антенн) хранятся в файле "SPRITE.BMP". Следите за изменениями на страничке. Может баги какие будут найдены и исправлены. Так что будьте в курсе. ЖЕЛАЕМ УСПЕХОВ! По всем вопросам обращайтесь к администрации "звездного мира" через систему или по почте |