2016-11-15 14 views
-2

3つのランダムな色で円を描きたいと思います。しかし、このコードでは、円を描くために使用される、出力が色なしである:それは黄色や青色のときgetColor()機能でPython Turtleは無作為に色付けされた円を描きます

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

あなたは 'getColor()'を使用していません。少なくともこのコードではありません。また、2つの異なるrandint()呼び出しで2つの異なる数値を生成しています。 – Lafexlos

答えて

0

、あなたはcolor変数に代入していない - あなたは、二重を使用しています等しい。ここでは修正版です。第二に

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

は、あなたがdrawFace()の初めにペンを拾って、終了する前にそれを置くことはありません!あなたは、ランダムにrandom.choice()と直接ものを選ぶことができ、あなたがインデックスにあなたの色をランダムな数字を選択する必要はありません

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

:ここで修正です。 GetColor()に電話し、あなたが選択した色をtess.pencolor()に適用する必要があります。また、中心に基づいて円を配置すると考える傾向がありますが、Pythonのカメはそうではありませんので、(暗黙的に)あなたのコード:

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() 
関連する問題