Статья Автор: Лебедев Дмитрий Алексеевич

Черепашка-ниндзя. Часть 1

В тетради представлен подход к созданию собственных команд"надстроек".
Для примера выбран модуль Turtle. Для этого модуля существует множество методов и множество примеров для применения
Вначале реализуем автоматизацию графического диктанта по сторонам "клетчатой бумаги" 
Для этого достато иметь возможность вылонять следующие команды:
  • U - выполнить команду up()
  • D - выполнить команду down()
  • R - выполнить команду right(90)
  • L - выполнить команду left(90)
  • Fn - выполнить команду forward(n*m) ,
    где n - количество клеток передвижения, m - "условный" размер клетки в пикселях 
  • R - а
Ниже показана реалищиДля упрощения кодирования, улучшения комфортности и рефлексии предлагается написать небольшую "надстройку"
Ниже приведены примеры таких решений (используем "сложение"  и "умножение" для повторов) 

 

Наш bobik пока понимает команды поворота только в "стандартном"(военно-физкультурном") формате.
В геометрии (и не только) нужны повороты на градус. Попробуем добавить это.
Как "разделить" строки L и L45?
- первая равна "L"
- вторая не равна "L", но первый символ в ней равен 'L'
значит, вначале надо проверять равенство, а потом совпадение первого символа

Модифицируем подпрограмму bobik. (Добавим пару строк, фактически являющихся copy-paste одной из строк)
Приведем примеры рисунков с поворотами на градус

 

Теперь попробуем усовершенствовать навык использования "командной строки" для рисования фигур в "масштабе" при заданном размере клетки.
Например
bobik("F1 R " * 4 + "F2 R " * 4 + "F3 R " * 4 +"F4 R " * 4  + "F5 R " * 4)  
нарисует 5 вложенных квадратов.
Можно немного упростить, используя цикл
for n in range(1,6) :
  s = ('F' + str(n) + ' R ') * 4
  bobik(s)

Для "упрощения" этого процесса (и вообще для формирования строк) есть f' - строки
Полную информацию по ним можно найти в сети. Здесь приведем только примеры, необходимые для нашей задачи
Рисование вложенных квадратов можно осуществить
for n in range(1,6) :
  s = (f'F{n} R ')* 4
  bobik(s)

 

 

Для дальнейших примеров будем создавать Черепашку и настраивать ее параметры.
Попробуем рисовать многоугольники/звезды с заданным периметром.
Заменим  (в подпрограмме bobik)целые значения поворотов на вещественные

 

Нарисуем клетчатое поле.
Создадим путь "Прямо 2n-клеток, Налево, Прямо, Налево, Прямо 2n-клеток, Направо, Прямо, Направо
f'F{2*n} L F1 L F{2*n} R F1 R'
Повторим этот путь n  раз
Повернем направо и повторим всё снова

 

Если добавить закраску, то можно получить шахматную раскраску (надо вернуть Черепашку "домой")

 

Продолжение следует.... Будем учить Черепашку геометрии
 
Печать