2013-10-14 48 views
0

我剛剛開始使用pythons龜圖形模塊,我遇到了一個問題不與烏龜本身我不認爲,但我的算法樣式。我使用window.colormode(255),當我在我的程序中從紅色到藍色迭代時,它非常棒並且工作得很好,每增加一個藍色變量並在每個循環中遞減一次紅色變量。python龜圖形迭代通過顏色索引拋出一個錯誤

我正在與我的過濾器的問題,即應該反相顏色增量器/ decrementor的順序(我想從藍色背去紅了R = 0,B = 255):

這裏的該代碼繪製:

counter = 1 
firstlength = 1 
secondlength = 1 
thirdlength = 1 
fourthlength = 1 
fifthlength = 1 
colorList = [255,0,0] # r g b 
f = 0 # index for colorlist 
for i in listOfTurtles: 
    i = turtle.Turtle() 
    i.pencolor(colorList[0], colorList[1], colorList[2]) 
    i.speed(0) # no turn animations 
    i.left(counter) 
    i.forward(firstlength) 
    i.left(15) 
    i.forward(secondlength) 
    i.left(15) 
    i.forward(thirdlength) 
    i.left(15) 
    i.forward(fourthlength) 
    i.left(15) 
    i.forward(fifthlength) 
    counter += 1 
    firstlength += .1 
    secondlength += .11 
    thirdlength += .12 
    fourthlength += .13 
    fifthlength += .14 

這裏是通過畫筆顏色迭代問題(使用下面的答案):

blueUp = True 
    if blueUp == True: 
     colorList[0] -= 1 
     colorList[2] += 1 
     if colorList[0] <= 1: 
      blueUp = False 
    else: 
     colorList[0] += 1 
     colorList[2] -= 1 
     if colorList[2] <= 0: 
      blueUp = True 

然而,這個過濾器我已經設置了不弗利g當需要時顏色增量器/減量器;從而導致「顏色序列錯誤:(-1,0,256)

所以我知道它增加我的藍色1位數太高,而我的紅色太低,第一遍然後錯誤出來,但我不確定如何解決這個問題,我已經玩了>值,並使它們更高(捕獲5或250),但我沒有得到結果。方式來寫這一點,因爲我敢肯定,我已經想到了最壞的可能的方式來解決這個問題

回答

0

我是個白癡。我的布爾變量在我的外部聲明中是本地的,這個變量遍歷我的i。每一個循環都會重置blueUp的值,並再次強制索引值減1.通過將我的bool移動到我的outer for循環外解決了這個問題。

0

對於初學者來說,你應該改變這樣的:

if blueUp == False: 
    if colorsList[2] > 0: 

這樣:

if blueUp == False: 
    if colorList[2] > 1: