Создание кирпичной стены с графикой черепахи Python - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть идея, как сделать стену, но я должен создать промежутки между кирпичами, и это должно заполнить окно. Есть ли у кого-нибудь предложения о том, как лучше всего это реализовать? Мой код такой:

import turtle
x1= -300
y1= 270

turtle.setup(600, 600)
turtle.speed(0)
turtle.bgcolor('black')
for y in range (1, 16):

    for x in range(10):
        turtle.penup()
        turtle.goto(x1, y1)
        turtle.pencolor('red')
        turtle.pendown()
        turtle.fillcolor('red')
        turtle.begin_fill()
        turtle.forward(50)
        turtle.left(90)
        turtle.forward(25)
        turtle.left(90)
        turtle.forward(50)
        turtle.left(90)
        turtle.forward(25)
        turtle.left(90)
        turtle.end_fill()
        x1 += 60
    if y % 2 == 0:
        x1 -= -200

    else:
        x1 = -300
        y1 -= 270

После первой строки y, как предполагается, увеличивает себя и создает еще одну строку ниже первой, пока не заполнит экран.

1 Ответ

0 голосов
/ 15 ноября 2018

Даже если это не то, что вы имели в виду, это должно дать вам несколько идей о том, как действовать дальше. Он основан на штамповке вместо рисовании и устанавливает систему координат, ориентированную на кирпичи:

from turtle import Screen, Turtle

CURSOR_SIZE = 20

screen = Screen()
screen.setup(600, 600)  # 12 x 24 bricks
screen.setworldcoordinates(0, 0, 12, 24)  # coordinates based on bricks
screen.bgcolor('black')

turtle = Turtle('square', visible=False)
turtle.penup()
turtle.speed('fastest')
turtle.color('black', 'red')
turtle.shapesize(25 / CURSOR_SIZE, 50 / CURSOR_SIZE, 5)  # turn cursor into brick

for y in range(24):
    turtle.setposition(-0.5 * (y % 2), y + 0.3)

    for x in range(13):  # baker's dozen due to brick skew
        turtle.stamp()
        turtle.forward(1)

screen.mainloop()

enter image description here

...