您好我正在编写一个python龟文件,其中一个函数将返回一个随机颜色(我可以选择任意三个),然后一个函数将在屏幕上的任意位置绘制一个面。它调用该函数绘制一个面部5次,每次它选择不同的颜色。我有一切,它打印一张脸,但它只会打印一种颜色,我不知道如何让它每次打印不同的颜色。
这是我的代码:
import turtle
import random
window = turtle.Screen()
sam = turtle.Turtle()
sam.pensize(3)
def getColor():
color = random.randint(1,3)
if color == 1:
sam.fillcolor("pink")
return "Color: Pink"
elif color == 2:
sam.fillcolor("lightblue")
return "Color: Light Blue"
else:
sam.fillcolor("purple")
return "Color: Purple"
def drawFace(x,y):
move = random.randint(1,2)
if move == 1:
sam.penup()
sam.left(x)
sam.forward(y)
sam.pendown()
else:
sam.penup()
sam.right(x)
sam.forward(y)
sam.pendown()
sam.begin_fill()
sam.right(90)
sam.forward(10)
sam.left(40)
sam.forward(30)
sam.left(50)
sam.forward(90)
sam.left(60)
sam.forward(20)
sam.left(30)
sam.forward(10)
sam.left(90)
sam.forward(118)
sam.end_fill()
sam.penup()
sam.right(90)
sam.forward(50)
sam.right(90)
sam.forward(40)
sam.pendown()
sam.begin_fill()
sides = 4
while sides > 0:
sam.forward(20)
sam.right(90)
sides = sides - 1
sam.end_fill()
sam.penup()
sam.forward(60)
sam.right(90)
sam.pendown()
sam.begin_fill()
sides = 4
while sides > 0:
sam.forward(20)
sam.right(90)
sides = sides - 1
sam.end_fill()
print(getColor())
drawFace(40,50)
drawFace(90,100)
drawFace(30,200)
drawFace(280,50)
drawFace(90,100)
谢谢
答案 0 :(得分:1)
getColor()
仅在您的计划开始时被调用一次。在绘制每个面之前,您需要调用getColor()
,如下所示:
print(getColor())
drawFace(40,50)
print(getColor())
drawFace(90,100)
print(getColor())
drawFace(30,200)
print(getColor())
drawFace(280,50)
print(getColor())
drawFace(90,100)
你在循环中编写的代码会更加简洁:
points = [(40,50), (90,100), (30,200), (280,50), (90,100)]
for x,y in points:
print(getColor())
drawFace(x, y)
或者您可以通过getColor()
拨打电话drawFace()
。
答案 1 :(得分:0)
我知道如何执行此操作的最简单方法是,如果您执行启动代码:
import turtle
draw = turtle.Turtle()
draw.speed(1)
然后是颜色
draw.pencolor("blue")