2015-11-20 102 views
0

所以截至目前,我有這個代碼;如何讓python使用這種隨機生成的顏色?

import turtle 
import random 

def getColor(): 
    selection = random.randint(1,3) 
    if selection == 1: 
     return "green" 
    elif selection == 2: 
     return "red" 
    else: 
     return "blue" 

def drawPerson(my_turtle, x, y): 
    my_turtle.penup() 
    my_turtle.goto(x,y) 
    my_turtle.pendown() 
    my_turtle.pensize(3) 

    xul.color = getColor() 
    print(xul.color) 
     if xul.color == "green": 
      xul.color("green") 
     elif xul.color == "red": 
      xul.color("red") 
     else: 
      xul.color("blue") 

    xul.forward(90) 
    xul.left(90) 
    xul.forward(90) 
    xul.left(90) 
    xul.forward(90) 
    xul.left(90) 
    xul.forward(90) 
    xul.left(90) 


xul = turtle.Turtle() 
drawPerson(xul,150,150) 
drawPerson(xul,-150,150) 
drawPerson(xul,-150,-150) 
drawPerson(xul,150,-150) 
drawPerson(xul,0,0) 

的問題是..我可以生成的顏色,它打印它繪製的所有形狀的顏色,但我無法弄清楚如何使它之前繪製的顏色實際上得到應用到龜。我曾嘗試過這樣的事情;

xul.color("getColor") 

和許多其他的東西,但我似乎無法弄清楚。如果有人可以只給我,我很想念我會非常非常感激的代碼行!謝謝!

+0

噢,對不起,可以刪除 '如果xul.color == 「綠色」: xul.color( 「綠色」) ELIF xul.color ==「紅」: xul.color(「紅」) 其他: xul.color(「藍」)' 這一整套字符串沒有做任何事情,並返回一個錯誤只是一些我正在測試出 – GHam

+0

你必須調用該函數,而不是函數名稱。即''xul.color(getColor())' –

+0

所以我取而代之''xul.color = getColor()'而不是'xul.color(getColor())'現在它顯示drawPersons與他們的顏色(謝謝),但現在它不打印它使用它的顏色,而是說<綁定方法Turtle.color的> 它運行的代碼,只是當它打印xul.color它不會說紅色,綠色或藍色 – GHam

回答

0

我想你可以改變你的第二個功能,像這樣:

def drawPerson(xul, x, y): 
    xul.penup() 
    xul.goto(x,y) 
    xul.pendown() 
    xul.pensize(3) 

    xul.color(getColor()) 

    xul.forward(90) 
    xul.left(90) 

等 - 假設你想在函數內部繪圖步驟,並且不只是一個縮進的錯誤。

你的第一個功能是好的,但有一個簡單的方法:

def getColor(): 
    return random.choice(['red', 'green', 'blue']) 
+0

哦,我明白了,這種方式看起來更清潔,謝謝讓未來更容易:D,但對於這項任務,我正在努力,我們需要使用更長的方式:)。是的,我發現它必須是'xul.pencolor(getColor())',然後是'print(xul.pencolor())' – GHam