Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2015, 18:41   #1
Fox1234
 
Регистрация: 19.05.2015
Сообщений: 3
По умолчанию Слава роботам

Входной файл: input.txt Выходной: output.txt Лимит времени: 10 сек.
Российский роботостроительный завод разрабатывает новую модель робота-погрузчика. Робот управляется -LEFT,RIGHT,UP,DOWN. Например, если робот находится справа от контейнера, то подается команда LEFT, то он двигается сам и двигает контейнер, если мешает стена или перегородка- то он никуда не двигается. Больше одного контейнера двигать не может за раз. План склада -прямоугольник с секторами. Каждый сектор либо пуст, либо целиком занят роботом, стеной, контейнером. Сам склад ограничен стенами. Нужно разработать полезную для отладки роботом программу. Эта программа должна по начальному плану склада и программе робота( перечню команд) построить план склада в том виде, какой он должен приобрести после того, как робот выполнит программу. Входной файл.Первая строка содержит два числа M и N, разделенных пробелом - размеры склада 5<=M, N,=100. След. N строк- посекторный план склада. Каждая из этих строк имеет длину M; в этих строках пробел - пустой сектор, *-стена или перегородка, # -контейнер, R- робот. Робот на складе только один.
Выходной файл. Выходной файл должен содержать N строк- план склада после выполнения программы роботом.
(Сильно извиняюсь за качество фотографий)
Изображения
Тип файла: gif _xPS0nIWtxg.gif (80.8 Кб, 56 просмотров)
Тип файла: gif _jp.gif (68.6 Кб, 58 просмотров)
Fox1234 вне форума Ответить с цитированием
Старый 19.05.2015, 23:14   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Если есть вопросы по тому что может ваш робот, то сообщаю:
есть такая игрушка "SOKOBAN". Ваш робот это персонаж из этой игры.



p.s. C++ не знаю. Но алгоритм решения достаточно простой.
1) создаёте матрицу нужного размера
2) из входного файла считываете заполнение поля
3) выполняете построчно каждую команду, внося изменения прямо в матрицу (являющуюся отображением в памяти игрового поля).
При выполнении команды учитываете,
что робот может двигаться только на свободное поле или, если поле, куда он движется занято контейнером, но за контейнером есть пустое поле, то на одно поле передвигаются и робот и контейнер. Если поле, куда робот должен пойти, занято или за контейром нет свободной ячейки - робот остаётся на месте.

вот и всё.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы по лабораторным роботам clanz Microsoft Office Access 27 12.03.2010 20:48
Как писать прошивку роботам? NIQK Микроконтроллеры, робототехника, схемотехника, 3D принтеры 6 29.12.2009 18:58