我需要使用具有相同图案的 16 个图块和使用 python 的三种或更多不同颜色的循环编程构造来创建马赛克

I need to create a mosaic using the loop programming construct with 16 tiles of the same pattern and three or more different colors using python

对于我的作业,我必须使用乌龟创建一个形状,然后将该形状变成一个由 16 个瓷砖组成的 4 * 4 图案马赛克。我创建了海龟形状,但我为制作马赛克所做的每一次尝试都以错误或无输出而告终。这是我在这个项目中使用的乌龟形状。如何使用此形状创建马赛克?

import turtle
wn = turtle.Screen()
wn.bgcolor('white')
wn.setup(500,500)
bob = turtle.Turtle()
bob.speed(10)
bob.pensize(2)
bob.color('purple')
for i in range(20):
    bob.left(140)
    bob.forward(100)
bob.hideturtle()

“无输出”可能意味着 window 正在自行关闭。尝试将其添加到末尾以防止出现这种情况:

# ...
bob.hideturtle()
input('press enter to exit')

你可以通过传送到你想要绘制每个形状的地方多次绘制相同的形状。

def shape():
    for i in range(18):
        bob.left(140)
        bob.forward(100)

# coordinates of each of the shapes
# these are completely arbitrary
# you can change these to whatever (adjust spacing, change where they are, etc)
# you can also write this using ranges if you want
for x in (-100, 0, 100, 200):
    for y in (-150, -50, 50, 150):
        bob.penup()
        bob.setposition(x, y)
        bob.pendown()
        shape()

这将遍历所有 16 个点,-100, -150-100, -50-100, 50,...,200, 150

请注意,我将你的形状更改为仅循环 18 次 - 这使得总旋转为 360 度的倍数,因此下一个形状不会倾斜。此外,该形状只有 18 个这样的边,因此绘制额外的 2 个将是一种浪费。 This is what would happen if it was left at 20.


输出: