Движение по координатам

Сегодняшний материал - в первую очередь для робототехников из базовой и подготовительной групп. Галина Анатольевна объясняла подготовительной группе тему, связанную с движением робота по полю, когда роботу отдаются команды типа "три клетки на север, две на восток, три на юг", и нужно было нарисовать на листе бумаги его путь. С базовой (младшей) группой мы тоже разбирали подобные задачи, изучая тему "Экран". Сегодня попробуем написать алгоритм движения робота, используя немного другую систему команд.
Итак, у нас будет клетчатое поле, как в игре "Морской бой" - можно взять обычный листок бумаги в клетку. Договоримся об обозначениях: начало координат, то есть первая клетка, будет в левом верхнем углу. Это означает, что нумерация идёт вправо и вниз. Каждая точка (пересечение линий) имеет две координаты: ширину и высоту, или X и Y. Первой идёт ширина. То есть на рисунке у верхнего угла треугольника будет координата (5; 2):

5 - это положение точки по ширине (это пятая вертикальная линия), а 2 - по высоте (вторая сверху горизонталь).
Чтобы не запутаться в цифрах (например, какая координата у первой точки - 0 или 1?), будем использовать относительные координаты. Это означает, что наш воображаемый робот начнёт движение из любой точки, какая вам больше нравится (лучше ближе к центру листа), и все команды мы ему будем отдавать относительно текущего положения. То есть мы будем говорить ему не "перейди в точку (1; 1)", а "передвинься на две клетки вправо и одну вверх", и обозначать мы это будем (2; -1). "2" - это "две клетки вправо" (если бы было 2 клетки влево, было бы не 2, а -2), а "-1" - "одна клетка вверх" ("1" - вниз). На рисунке с треугольником, который изображён выше, робот сделает три движения. Первое - (3; -4): он идёт на три клетки вправо и 4 вверх. Второе - (1; 4) - на одну клетку вправо и четыре вниз. Наконец, (-4; 0) - возвращение в исходную точку. Проверьте сами; если вы начертите эти три линии на листе, у вас получится такой же треугольник. Важно запоминать, где оказался робот после выполнения каждой команды: каждое движение перемещает робота, и следующее он должен начинать оттуда, где он оказался после предыдущего.

Теперь, собственно, основное задание. Вам предлагается незаконченный алгоритм движения. Надо нарисовать путь робота, выполняющего этот алгоритм, и дописать его, чтобы получилась полная фигура. Ответы пишите в комментариях к статье. Читайте комментарии, написанные другими участниками: если вы найдёте в них ошибку и исправите её, это принесёт вам дополнительные очки.
Итак, первые 13 шагов алгоритма (остальные вам надо будет дописать самостоятельно). Напоминаю, что первое число - движение по горизонтали направо (если с минусом - то налево), а второе - по вертикали вниз (если с минусом - то вверх). Эти движения происходят одновременно, в сумме дают диагональ (если оба числа ненулевые).
(-2; -3), (2; -7), (0; 10), (-9; -3), (7; 0), (2; 3), (-3; 1), (-6; -4), (9; 3), (-6; 8), (3; -7), (3; -1), (0; 3)
Дополнительное задание: если вы владеете каким-либо языком программирования (например, у вас есть блок EV3, или вы владеете Питоном), напишите эту программу и пришлите Александру Константиновичу скриншот результата её работы. Если такой возможности нет, можете прислать фотографию листа бумаги, на котором вы нарисовали получившуюся фигуру.


Робототехника Интеллект Праздники
8 мая 2020