<< Вернуться на главную СИРИУССкоро новый год, а значит приближается очередной, новогодний конкурс программистов. Идея конкурса навеяна посещениями некоторых учеников лагеря "Сириус", где им предлагалось написать программу управления простейшим корабликом на микроконтроллере. В ходе конкурса нужно было пройти какой-то маршрут. Задача осложнялась инерцией корабля, слабопредсказуемыми поворотами и столкновениями с препятствиями. В общем в бассейне как в бассейне! Вот мы и решили смоделировать этот кораблик и предложить Вам потренироваться в управлении таким интересным объектом. Итак, имеется бассейн размером 800 на 600. В нем плавает простейший кораблик из пенопласта (для простоты ему придана круглая форма). В центре кораблика врезаны два гребных колеса (одно правее а другое левее центра). Гребные колеса могут крутиться вперед и назад.
Игровое поле представлено на рисунке:
Сам корабль (зеленый круг) виден в нижнем правом углу. Белая полоса на нем указывает направление "Вперед". Задача усложнена тем, что в нашем бассейне имеется небольшое течение (и конечно навстречу :-) , а у кораблика слегка "барахлит" правый двигатель (совсем чуть чуть и по случайному закону).
Игрушку с ручным управлением для ознакомления можно скачать
тут.
Если вы хотите попробовать свои силы в конкурсе, то скачиваете проект заочного этапа (в соответствии с удобным для вас языком программирования). Распаковываете и пробуете! Прототип функции управления выглядит так: M_UPR(D_left,D_right:REAL); Если вы дадите M_UPR(1,-1) - корабль будет вращаться по часовой стрелке Если вы дадите M_UPR(0,+1) - корабль будет двигаться вперед и сильно заворачивать влево А если дадите вперед M_UPR(1,1), то поедет вперед (хотя из-за "барахлящего" правого двигателя может слегка поворачивать вправо)
Для того, чтобы знать где корабль находится, куда он повернут и нет ли столкновения, вы можете запросить параметры корабля при помощи подпрограммы M_GET_TM, которая имеет интерфейс:
Задача конкурса - за наименьшее количество ходов обеспечить приход корабля в зону финиша (и желательно лбом в препятствия не стучаться! :-) ). Как всегда за месяц предлагается освоить управление, попробовать максимально улучшить показатели, наработать полезные подпрограммы (можно конечно ничего не делать если вас не интересует результат :-) ). Ну а на очном этапе милости просим в СЮТ с готовыми исходниками и собственными идеями. Обещаем как минимум усложнить жизнь. В конкурсе будет поддержано несколько оболочек и языков программирования . В зависимости от того какая оболочка вам более комфортна вы можете выбрать то что вам ближе. А почему именно такой выбор? Да просто потому, что именно эти оболочки официально куплены нами в СЮТ. А значит, на очном этапе вы можете выбрать любую из этих оболочек. Если у вас другие версии, то вы можете адаптировать проект под вашу оболочку. Это легко делается, потому что основные функции вынесены в DLL. Но учтите, что на очном этапе мы можем обеспечить вам только указанные версии! Впрочем вы можете прийти и со своим ноутбуком, если вас не устраивают наши средства. Игра написана так, что от производительности компьютера она совершенно не зависит. Подпрограмма "M_OTRIS" пересчитывает модель и рисует обстановку (собственно именно она и делает ход). А вот подпрограмма управления может быть вызвана множество раз, сработает только последняя установка! Будьте внимательны! Дерзайте, все в ваших руках и головах! Мало того, чтобы потом на очном этапе сюрпризов не случилось, нужно хорошенько погонять это ПО. Вдруг что-то работает не совсем так как заявлено. Пишите, ошибки подправим. На очном этапе все ошибки обзываются "багами" и исправлению не подлежат!
Месяц всем на ознакомление с задачей, наработки своих методик и
подпрограмм, тестирование. А в новогодние каникулы (а конкретно 06.01.2018 (воскресенье), в 12:00 в кабинете 2-24 СЮТ) состоится очный этап.
ВНИМАНИЕ!
Желающим принять участие в конкурсе очень желательно зарегистрироваться.
Чтобы заранее "застолбить" место на очном этапе. Учтите, если вы зарегистрировались, то сразу в таблице себя не увидите. Мы постараемся внести информацию в течении 2-х дней. На сегодня зарегистрировались:
По всем вопросам обращайтесь к администрации "Звездного Мира" через систему или по почте |