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

ЧУДО ТРАКТОР

И опять и опять администрация сайта напоминает всем, что в новогодние каникулы состоится конкурс программистов. Сначала небольшое вступление:

Человек постоянно совершенствует сельскохозяйственную технику. Для нашей страны это особенно актуально, так как мы находимся в зоне рискованного земледелия. Вы только представьте, во Вьетнаме, например, урожай снимают 3-4 раза в год! (а кстати 3 или 4? Да они вообще не считают! Посадили, выросло, убрали, посадили и.т.д. Сколько в год получится столько и надо) а у нас есть только один сезон - лето да и то иногда его не хватает даже для одного урожая. Единственный выход для нас - увеличить посевные площади так, чтобы они попали в разные зоны нашей страны. Тогда если в одной части засуха, в другой потоп то хоть в третьей все нормально будет :-). Людей в сельском хозяйстве мало, а посевные площади все больше и больше. Выход какой? Правильно! АВТОМАТИЗАЦИЯ!

Вот как в 1957 году в фильме "Дело было в Пенькове" Представляли будущее сельского хозяйства:

И вот в этом году, состоялась демонстрация новейшей сельскохозяйственной техники, которая работает под управлением искусственного нтеллекта.

Предприятие Роскосмоса представило публике полностью автоматический трактор "Агробот". (В нем вообще не предусмотрено ручное управление).

Выглядит он вот так:

Правда похоже на 1957 год :-)

А вот фирма "Когнитивные технологии" представила ИИ в виде комплекта аппаратуры, который устанавливается на любую современную сельхоз технику и управляет ей без участия человека. (Тоесть прямо крепится к рулю и рычагам управления обычной техники)

Сам вычислитель выглядит :

Кажется что там управлять? Едь себе по прямой и не сворачивай! Но задача управления сельхоз техникой вовсе не так проста, как может показаться с первого взгляда. Основная беда в том, что реальные поля совсем не обязательно ровные (и даже скорей всего не ровные) мало того, часто прямо на полях стоят столбы, большие камни и еще разные неприятности.

Итак слушайте задание на этот год:
Имеется поле, размером 100 на 60 участков (всего 6000)
на поле в координатах 1,1 стоит "Чудо трактор" с ИИ (а управлять им будет ваша программа).

Трактор и правда чудо, сам смотрит надо пахать или нет, сам перемещается на тот участок который вы скажете (на соседний участок). Трактор может ехать вверх, вправо, вниз и влево (За один ход на один участок). Если вы загонете трактор на край поля или упрете его в столб, то ничего не случится. Трактор останется на месте (но ход вы потратите).

ЗАДАЧА: за 3000 ходов вспахать максимальное количество участков (учитываются только еще не паханные участки) Очки даются только за участки которые надо пахать (показаны желтым цветом) Как только вы по ним проедете, цвет участков меняется и очков больше они не дают.

Игровое поле представлено на рисунке:

Трактор показан красным цветом, участки не предназначенные для пахоты ярко зеленым, столбы черные а те места, где трактор уже побывал красятся в темно зеленый или коричневый.

Игрушку с ручным управлением для ознакомления можно скачать тут.
Управление в игрушке производится стрелками на клавиатуре.Очки и ходы можно посмотреть в заголовке окна программы.
Копируете, распаковываете и запускаете.

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

В программе есть подпрограмма "HOD" В которой вы и должны реализовать свой алгоритм. Фактически для Вас там показано, как пользоваться двумя подпрограммами, которые написаны для управления. Одна подпрограмма (M_GET) запрашивает текущие параметры игры. Все параметры переписываются в переменную "DAT", где полный игровой массив текущие параметры трактора, текущий ход и заработанные очки. Вторая программа (M_UPR) служит для управления трактором.

В двухмерном массиве DAT.M хранится игровое поле:
0 - пустое поле, которое пахать не надо
3 - не вспаханное поле, которое НУЖНО пахать!
4 - участок, который не надо пахать но трактор по нему проехал
6 - уже вспаханное поле
8 - Столб!!! (его точно пахать не надо!)

DAT.TX и DAT.TY - текущие координаты трактора
DAT.HOD - текущий ход
DAT.SCORE - текущие достижения (Количество вспаханных участков)

Управление производится через подпрограмму M_UPR с параметром:
1 -Вверх
2 -Вправо
3 -Вниз
4 -Влево

Проект для LAZARUSа.

-----

Проект для C++DUILDERa.

Скачиваете, распаковываете и пробуете! Учтите, рисунок поля задан в картинке "1.bmp". Специально сделано так, что Вы можете менять рисунок чтобы пробовать работу программы в разных условиях. Если захотите свои поля задать, используйте те цвета, которые заданы на нашем рисунке и сохраняйте новую картинку в этом-же файле (не забудьте перед редактированием картинки скопировать исходный файл для того,чтобы можно было восстановить ее).

ВНИМАНИЕ!!! Очный этап состоится 08.01.2019 в 12:00 в СЮТе (кабинет 2-24)

Желающим принять участие в конкурсе очень желательно зарегистрироваться. Чтобы заранее "застолбить" место на очном этапе.
РЕГИСТРАЦИЯ

Учтите, если вы зарегистрировались, то сразу в таблице себя не увидите. Мы постараемся внести информацию в течении 2-х дней.

На сегодня зарегистрировались:

Фамилия и имя Школа Класс Предпочитаемая оболочка
Пимонов Даниил ТУСУР ВНЕ КОНКУРСА LAZARUS
Лазеев Сергей Лицей 103 10п LAZARUS
Школьный Никита Гимназия 91 10а LAZARUS
Керемецкий Артем Лицей 103 11 LAZARUS
Сурвилов Алексей Школа91 10а LAZARUS
Савин Савелий Гимназия 91 LAZARUS
Шалагинов Иван 102 LAZARUS
Климов Иван ТУСУР ВНЕ КОНКУРСА LAZARUS
Агафонов Ярослав СФУ ИИФиРЭ ВНЕ КОНКУРСА LAZARUS

Кстати памятные подарки будут вручены всем зарегистрированным :-)

По всем вопросам обращайтесь к администрации "Звездного Мира" через систему

Вопрос-ответ.

или по почте