Уроки и упражнения



Черепашка

Черепашка - гениальное изобретение создателей детского языка программирования Логорайтер. Около 30 лет назад многие начинающие программисты благодаря языку Логорайтер и благодаря Черепашке освоили структурное программирование. Но в Логорайтере Черепашка была встроена, т.е. она была написана не на Логорайтере, а на том языке программирования, на котором был написан сам Логорайтер. Мы же предлагаем Вам Черепашку, написанную на "Утке", не просто готовую Черепашку, а несложную программу на "Утке", которая реализует Черепашку. Эта программа использует все средства, которые были изложены на протяжении всех предыдущих тем.
Черепашка - это небольшая монохромная фигурка, отдалённо напоминающая черепаху с головой и четырьмя ножками, но смысл ее как объекта для детского программирования состоит в том, что математически она в каждый момент времени задаёт точку на экране и направление. Черепашка представляет собой объект, у которого имеется два основных метода:

go(t); и
turn(t);

Первый метод заставляет черепашку передвинуться вперёд на расстояние t, а второй метод заставляет черепашку повернуться на угол t. У черепашки имеются также вспомогательные элементы: цвет, перо, толщина линии, размер самой черепашки. Используя два основных метода и вспомогательные элементы можно составлять программы движения черепашки по графической панели, рисовать её пером какие-то рисунки и т.д. В этом состоял смысл языка Логорайтер. Наша цель понять, как устроена сама черепашка и научиться создавать другие проекты при помощи тех средств, с которыми Вы познакомились в этом курсе.
Главный элемент черепашки, как объекта, это матрица черепашки:

matr = {x: {x: 0, y: 0}, y: {x: 0, y: 1}};

первый вектор этой матрицы указывает положение черепашки на экране, а второй вектор - её направление. Начальное положение, как Вы видите, задаётся в середине графической панели в точке с координатами (0, 0), а начальное направление задаётся вверх, т.е. в направлении вектора с координатами (0, 1). объекту "Черепашка" дадим имя "turtle":

turtle = {matr: matr, go: go, turn: turn, color: color, width: width, pen: pen};

в этой записи предполагается, что матрица matr, функции go() и turn(), а также элементы (свойства) color, width, pen уже заданы. Ещё для того, чтобы при перемещении черепашки могли сохраняться те линии, которые она нарисовала во время предыдущих перемещений, необходимо создать коллекцию:

sss = Set();

к которой функция go() должна добавлять каждую очередную линию (точнее её матрицу).
Полностью программу, реализующую черепашку вы можете загрузить в редактор следующим образом: обратитесь в пункт меню "Проектирование/Загрузить проект". Выберите проект с названием "Черепашка". Вы можете сразу запустить этот проект, он начнёт работать: Черепашка будет в цикле проходить некоторую кривую. Вы можете остановить этот цикл, вернувшись из редактора в тему. Далее вы можете снова загрузить этот проект и произвести в нём изменения: вы можете изменить параметры траектории, можете изменить цвет Черепашки и линий, толщину линий и т.д. В этих изменениях вы можете зайти сколь угодно далеко, настолько далеко, что эта ваша работа может стать вашим собственным новым проектом, который вы сможете опубликовать.
Проектирование/Окно программирования
Your browser does not support the HTML5 canvas tag.