Измените x & y с помощью range (), чтобы создать сетку с использованием Python turtle

1

Как изменить x и y в функции range() для создания сетки с использованием черепахи? Я пытаюсь создать сетку квадратов с установленным интервалом между каждым использованием черепахи. Сейчас я использую это:

blocks = turtle.Turtle()
blocks.color("gray")
blocks.speed(0)
blocks.shape("square")
blocks.turtlesize(1.9)
blocks.penup()
blocks.setpos(-212, 130)
blocks_x = 85
blocks_y = 85
for pos in range(4):
    blocks.setpos(blocks.xcor() + blocks_x, blocks.ycor())
    blocks.stamp()

blocks.setpos(blocks.xcor(), blocks.ycor() - blocks_y)

for pos in range(4):
    blocks.setpos(blocks.xcor() + blocks_x, blocks.ycor())
    blocks.stamp()

blocks.setpos(blocks.xcor(), blocks.ycor() - blocks_y)

for pos in range(4):
    blocks.setpos(blocks.xcor() + blocks_x, blocks.ycor())
    blocks.stamp()

blocks.setpos(blocks.xcor(), blocks.ycor() - blocks_y)

for pos in range(4):
    blocks.setpos(blocks.xcor() + blocks_x, blocks.ycor())
    blocks.stamp()

blocks.setpos(blocks.xcor(), blocks.ycor() - blocks_y)

Он делает то, что я хочу, но я хотел бы знать, есть ли способ изменить координату y после того, как все x были напечатаны, поэтому я могу использовать функцию range() один раз?

  • 0
    Вы говорите, что ваш код «делает то, что [вы] хотите, чтобы он делал», но я не думаю, что это правильно. Код, который вы показываете, рисует прямоугольники в стиле ступеньки (ряд из четырех, затем еще один ряд со смещением в четыре, затем еще один ряд со смещением). Если вам нужна правильная прямоугольная сетка, естественный способ сделать это - пара вложенных циклов, но я не совсем уверен, что вы хотите, так как текст вашего вопроса не соответствует коду.
Теги:
turtle-graphics

2 ответа

0
Лучший ответ

Я предполагаю, что из вашего кода и описания вам нужно что-то вроде следующего, где положение x и позиция y управляются вложенными for циклов:

from turtle import Screen, Turtle

BLOCKS_X, BLOCKS_Y = 85, 85
BLOCK_SIZE = 38

CURSOR_SIZE = 20

screen = Screen()

blocks = Turtle('square', visible=False)
blocks.penup()
blocks.color('gray')
blocks.speed('fastest')
blocks.turtlesize(BLOCK_SIZE / CURSOR_SIZE)

x_start, y_start = -1.5 * BLOCKS_X, 1.5 * BLOCKS_Y

blocks.setpos(x_start, y_start)

for _ in range(4):
    for _ in range(4):
        blocks.stamp()
        blocks.forward(BLOCKS_X)

    blocks.setpos(x_start, blocks.ycor() - BLOCKS_Y)

screen.mainloop()

Изображение 174551

  • 0
    Да! Это потрясающе. Я не понимал, что вы можете сложить эти функции. То, как вы написали это, показывает мне несколько других ярлыков, которые я тоже мог бы использовать. Спасибо за помощь!!
0

пытаться

turtle.goto([x coordinate],[y coordinate])

это будет в основном телепортировать черепаху в эти координаты

  • 0
    Это также очень полезно!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню