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

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

В 1 части была создана подпрограмма bobik
def bobik(scom, t=None, m = 10 ):
  # Для демонстрации есть упрощенный вызов по умолчанию
  if t == None : 
    t = turtle.Pen()
  for k in scom.split() : # пробег по командам
    if k == 'U' : t.up() #поднятие пера
    elif k == 'D' : t.down() #опускание пера
    elif k == 'L' : t.left(90) #налево стандарт
    elif k == 'R' : t.right(90)#направо стандарт
    elif k[0] == 'F' : t.forward(float(k[1:])*m) #вперед
    elif k[0] == 'L' : t.left(float(k[1:])) #налево на градус
    elif k[0] == 'R' : t.right(float(k[1:])) #направо на градус
  turtle.done() # показ рисунка    

Эта подпрограмма, с использованием f'-строк позволяет упрощать создание рисунков, в том числе на "клетчатой бумаге.
Попробуем добавить команды, позводяющие передвигать/смещать исполнителя на вектор (a, b)
Блок рисования сетки оформим в виде подпрограммы setka с параметрами (<размер клетки>, <ширина>,< высота>, < исполнитель>,)
 

 

Теперь можно добавить команду для текста. 
T_<надпись>
Сделаем вариант, при котором надпись печатается размером шрифта равном размеру клетки. Пробелов в тексте не должно быть

 

Можно ещё добавить сокращенную команду для замены команды goto. 
Также "разрешим" выполнение любых "разумных" команд.
Можно указывать команды Черепашки: например изменить цвет t.color('green') и многое другое 

 

Вам доступна подпрограмма bobik  и setkaю
Пробуйте рисовать

 

При желании можете добавить свои команды, заменить имена команд. 
В части 3 рассмотрим "рисование по точкам", разберем "замечательные точки треугольника" и научимся поворачивать чертеж
Приведем построение треугольника по координатам вершин  и  проведем в нем медианы 

 
Печать