Разбор 6.PNG

№ 13843 (Уровень: Базовый)

(Е.Джобс) Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения.

У исполнителя существует 6 команд:

Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.

Черепахе был дан для исполнения следующий алгоритм:

Повтори 5 [Вправо 45 Вперед 10 Вправо 45]

Повтори 6 [Вперед 20 Вправо 90]

Сколько точек с целочисленными координатами находится внутри области объединения полученных контуров? Точки на линиях контуров учитывать не следует.

Untitled

Комментарии к коду решения:

  1. import turtle as t - импорт модуля turtle под псевдонимом t для работы с графикой.
  2. t.tracer(0) - отключение анимации для ускорения отрисовки.
  3. t.left(90) - поворот черепахи на 90 градусов влево.
  4. m = 20 - задание переменной m со значением 20.
  5. t.up() - поднятие пера черепахи.
  6. Цикл for _ in range(10): для отрисовки рисунка:
  7. t.right(120) - поворот на 120 градусов вправо.
  8. t.forward(12 * m) - перемещение вперед на 12 единиц, умноженных на m.
  9. t.down() - опускание пера черепахи для рисования.
  10. Цикл for _ in range(7): для отрисовки прямоугольника:
  11. t.forward(7 * m) - передвижение вперед на 7 единиц, умноженных на m.
  12. t.right(90) - поворот на 90 градусов вправо.
  13. Цикл for _ in range(5): для отрисовки шестиугольника:
  14. t.right(60) - поворот на 60 градусов вправо.
  15. t.forward(20 * m) - перемещение вперед на 20 единиц, умноженных на m.
  16. t.right(30) - поворот на 30 градусов вправо.
  17. t.up() - поднятие пера черепахи.
  18. Вложенные циклы for x in range(-30, 30) и for y in range(-30, 30) для отображения красных точек:
  19. t.goto(x * m, y * m) - перемещение черепахи в точку с координатами (xm, ym).
  20. t.dot(2, 'red') - отображение точки радиусом 2 и красного цвета.
  21. t.done() - завершение работы с модулем turtle.
import turtle as t
t.tracer(0)
t.left(90)
m = 20

t.up()
for _ in range(10):
    t.right(120)
    t.forward(12 * m)
t.down()
for _ in range(7):
    t.forward(7 * m)
    t.right(90)
for _ in range(5):
    t.right(60)
    t.forward(20 * m)
    t.right(30)

t.up()
for x in range(-30, 30):
    for y in range(-30, 30):
        t.goto(x * m, y * m)
        t.dot(2, 'red')

t.done()