如何在蟒蛇龟中获得不同的颜色

时间:2016-03-09 22:55:22

标签: python python-3.x turtle-graphics

您好我正在编写一个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)

谢谢

2 个答案:

答案 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")
相关问题