Черепаха Python
Подскажите пожалуйста, где у меня ошибка в коде, должно получиться объединение фигур
from turtle import *
k = 12
tracer(0)
for i in range(3):
forward(7*k)
right(90)
forward(12*k)
right(90)
penup()
forward(4*k)
right(90)
forward(6*k)
left(90)
pendown()
for i in range(4):
forward(83*k)
right(90)
forward(77*k)
right(90)
penup()
for x in range(-20, 20):
for y in range(-20, 20):
goto(x*k, y*k)
dot(3)
done()from turtle import *
k = 1
tracer(1)
for i in range(3):
forward(7*k)
right(90)
forward(12*k)
right(90)
penup()
forward(4*k)
right(90)
forward(6*k)
left(90)
pendown()
for i in range(4):
forward(83*k)
right(90)
forward(77*k)
left(90)
done()Это буквально то что описано в условии задачи
В вашем коде есть три ключевых момента, которые стоит исправить:
1. Логика отрисовки (бесконечный холст): Во втором цикле вы используете значения forward(83*k) и 77*k. Это очень большие расстояния для масштаба k=12 (около 1000 пикселей). Фигура просто уходит далеко за пределы видимости и сетки точек.
2. Сетка точек: Цикл для точек покрывает диапазон от -20 до 20. Этого мало, чтобы увидеть вторую фигуру, которая начинается после смещения и имеет такие гигантские размеры.
3. Ориентация черепахи: В задачах ЕГЭ (если код для них) важно помнить, что в Turtle черепаха изначально смотрит вправо (на восток), а в задачах часто подразумевается направление вверх (на север).
Как исправить:
Если вы решаете задачу из ЕГЭ (например, №6), проверьте длины сторон во втором цикле. Скорее всего, там должны быть числа вроде 8 и 7, а не 83 и 77.
Также, чтобы сетка соответствовала рисунку, добавьте в начало:
left(90) # Направить вверх
спасибо большое, я попробую
ничего не помогло, k заменил на 3, диапазон x и y на -100 до 100, в условии задания черепаха уже находится в начале координат ординат
вот задание
Где ошибка
Посмотри на строки 9-14:
python
penup()
forward(4*k)
right(90) # <- тут ты повернул черепаху
forward(6*k)
left(90) # <- вернул обратно
pendown()После этого ты начинаешь рисовать вторую фигуру, но черепаха уже смотрит не туда. Нужно сделать так, чтобы вторая фигура начиналась из нужной точки и под нужным углом.
✅ Правильный код
Вот исправленная версия:
python
from turtle import *
k = 12
tracer(0)
# Первая фигура (3 цикла)
for i in range(3):
forward(7 * k)
right(90)
forward(12 * k)
right(90)
penup()
forward(4 * k)
right(90)
forward(6 * k)
left(90) # возвращаем исходное направление
pendown()
# Вторая фигура (4 цикла)
for i in range(4):
forward(83 * k)
right(90)
forward(77 * k)
right(90)
penup()
# Рисуем точки для проверки
for x in range(-20, 20):
for y in range(-20, 20):
goto(x * k, y * k)
dot(3)
done()