Вверх ↑
Ответов: 5446
Рейтинг: 323
#1: 2008-09-04 20:10:30 ЛС | профиль | цитата
Ай, уговорил, будет вам

Разминочная задача: Исследователи плоского мира
Введение

Робототехника, планирование движений робота и обучение машин - вот области, лежащие на пересечении многих дисциплин, составляющих информатику: исксутвенный интелеект, алгоритмы и сложность, электрическое и механическое машиностроение и так далее. Кроме того, роботы-"черепахи" (описанные в работах Papert, Abelson, и diSessa) и роботы-"исполнители" (описанные в работах Pattis) многие годы изучались и испольовались студентами при изучении программирования.

Эта задача - об исследовании роботом доколумбова плоского мира.

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

Позиция робота состоит из координат на сетке (пара целых чисел: x-координата, и y-координата) и ориентацией в пространстве (N - север, S - юг, E - восток, W - запад). Инструкции робота - строка, состоящая из символов 'L', 'R', и 'F', обозначающих следующие инструкции:

  • L (Left): робот поворачивается влево на 90 градусов и остаётся на месте
  • R (Right): робот поворачивается вправо на 90 градусов и остаётся на месте
  • F (Forward): робот передвигается "вперёд" на одну точку, но не меняет ориентации в пространстве
Направление "Север" соответствут направлению перехода из точки (x,y) в точку (x,y+1).

Так как стека прямоугольная и ограниченная, то робот, вышедший за пределы сетки, потерян. Однако, такой робот оставил "метку", запрещающий следующим роботам покидать сетку в этой точке.
След оставляется в точке, в которой находился робот непосредственно перед падением. Инструкция, в результате которой робот покинет сетку, в "помеченной" точке будет проигнорирована.

Входные данные
* Пара координат, определяющая верхний-правый угол сетки. Координаты нижнего-левого угла сичтаются равными (0, 0);
Один или более блоков, состоящих из:
* Начального положения и ориентации робота;
* Строки команд.

Каждый робот обрабатывается последовательно, т.е. следующий робот начинает путеществие только после того, как предыдущий закончил его.

Начальные позиции роботов всегда находятся в пределах сетки. Максимальное значение каждой координаты - 50. Длина строки инструкций не превышает 100 знаков.

Результат работы
Для каждого набора по инструкций программа должна выдать конечную позицию и ориентацию робота. Если робот падает с края сетки, выводится сообщение "LOST" в дополнение к позиции и ориентации.

Пример входных данных
5 3
1 1 E
RFRFRFRF
3 2 N
FRRFLLFFRRFLL
0 3 W
LLFFFLFLFL

Пример выдачи
1 1 E
3 3 N LOST
2 3 S
------------ Дoбавленo:

Напоминаю:
решения присылать в приват, на всякий случай - оставляйте тут сообщение, если отправили приват.
карма: 1

0