2016-11-15 3 views
-2

Ich möchte Kreise in 3 zufälligen Farben zeichnen. Aber in diesem Code verwendet, um die Kreise zu zeichnen, ist die Ausgabe ohne Farbe:Python Schildkröte Draw zufällig farbige Kreise

import turtle 

window=turtle.Screen() 
tess= turtle. Turtle() 

import random 

def getColor(): 

    color=random.randint(1,3) 
    if color==1: 
     color="red" 
    elif color==2: 
     color=="yellow" 
    elif color==3: 
     color=="blue" 
    return color 
print (random.randint(1,3)) 

def drawFace (x,y): 

    tess.penup() 
    tess.goto(x+5,y+10) 
    tess.circle(10) 
    tess.goto(x+15,y+10) 
    tess.circle(10) 
    tess.pendown() 
+1

Sie verwenden 'getColor()' nicht. Zumindest nicht in diesem Code. Außerdem generieren Sie zwei unterschiedliche Nummern für zwei verschiedene randint() -Aufrufe. – Lafexlos

Antwort

0

In der getColor() Funktion sind Sie nicht auf die color Variablen zugewiesen wird, wenn es gelb oder blau ist - Sie verwenden Doppel gleich. Hier ist die feste Version:

def getColor(): 
    color=random.randint(1,3) 
    if color==1: 
     color="red" 
    elif color==2: 
     color="yellow" 
    elif color==3: 
     color="blue" 
    return color 

Zweitens Sie den Stift am Anfang drawFace() abgeholt und es nie vor der Fertigstellung weglegen! Hier ist das Update:

def drawFace (x,y): 
    tess.penup() 
    tess.goto(x+5,y+10) 
    tess.pendown() 
    tess.circle(10) 
    tess.penup() 
    tess.goto(x+15,y+10) 
    tess.pendown() 
    tess.circle(10) 
0

Sie brauchen keine Zufallszahlen zu indizieren Ihre Farben zu wählen, können Sie zufällig einen direkt wählen mit random.choice(). Sie müssen GetColor() anrufen und die Farbe anwenden, die Sie gewählt haben über tess.pencolor() Wir neigen auch dazu, Positionierungskreise basierend auf ihrer Mitte zu denken, aber Python Turtle nicht so müssen wir (explizit) dafür anpassen, wie Sie (implizit) in Ihr Code:

from turtle import Turtle, Screen 
import random 

RADIUS = 10 

def getColor(turtle): 
    choice = turtle.pencolor() 

    while choice == turtle.pencolor(): 
     choice = random.choice(["red", "green", "blue"]) 

    return choice 

def drawFace(turtle, x, y): 
    turtle.pencolor(getColor(turtle)) 
    turtle.penup() 
    turtle.goto(x, y - RADIUS) 
    turtle.pendown() 
    turtle.circle(RADIUS) 

tess = Turtle() 

drawFace(tess, 5, 0) 

drawFace(tess, 15, 0) 

screen = Screen() 

screen.exitonclick()