![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 19.05.2015
Сообщений: 3
|
![]()
Входной файл: input.txt Выходной: output.txt Лимит времени: 10 сек.
Российский роботостроительный завод разрабатывает новую модель робота-погрузчика. Робот управляется -LEFT,RIGHT,UP,DOWN. Например, если робот находится справа от контейнера, то подается команда LEFT, то он двигается сам и двигает контейнер, если мешает стена или перегородка- то он никуда не двигается. Больше одного контейнера двигать не может за раз. План склада -прямоугольник с секторами. Каждый сектор либо пуст, либо целиком занят роботом, стеной, контейнером. Сам склад ограничен стенами. Нужно разработать полезную для отладки роботом программу. Эта программа должна по начальному плану склада и программе робота( перечню команд) построить план склада в том виде, какой он должен приобрести после того, как робот выполнит программу. Входной файл.Первая строка содержит два числа M и N, разделенных пробелом - размеры склада 5<=M, N,=100. След. N строк- посекторный план склада. Каждая из этих строк имеет длину M; в этих строках пробел - пустой сектор, *-стена или перегородка, # -контейнер, R- робот. Робот на складе только один. Выходной файл. Выходной файл должен содержать N строк- план склада после выполнения программы роботом. (Сильно извиняюсь за качество фотографий) |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Если есть вопросы по тому что может ваш робот, то сообщаю:
есть такая игрушка "SOKOBAN". Ваш робот это персонаж из этой игры. p.s. C++ не знаю. Но алгоритм решения достаточно простой. 1) создаёте матрицу нужного размера 2) из входного файла считываете заполнение поля 3) выполняете построчно каждую команду, внося изменения прямо в матрицу (являющуюся отображением в памяти игрового поля). При выполнении команды учитываете, что робот может двигаться только на свободное поле или, если поле, куда он движется занято контейнером, но за контейнером есть пустое поле, то на одно поле передвигаются и робот и контейнер. Если поле, куда робот должен пойти, занято или за контейром нет свободной ячейки - робот остаётся на месте. вот и всё. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопросы по лабораторным роботам | clanz | Microsoft Office Access | 27 | 12.03.2010 20:48 |
Как писать прошивку роботам? | NIQK | Микроконтроллеры, робототехника, схемотехника, 3D принтеры | 6 | 29.12.2009 18:58 |