2016-05-04 23 views
-2

我正在寫一段代碼,遞歸地繪製一個非常簡單的「樹」。這是一組功能以及一些「設置」線條,但是,我想將它集成到一個更大的程序中,所以我想將它放在一個類中,然後調用它來繪製樹。如何讓這個python海龜代碼更小,使它成爲一個類?

我的問題是,作爲python新手,我該怎麼做?我閱讀了大約__init__self.(),但是我的代碼似乎非常模糊,遍佈各處,並且不夠緊湊,無法將它整齊地轉換爲類。

我應該如何首先減少代碼行數以適應函數?

import turtle as t 
import random 
def arbre(branche,t): 
    if branche > 5: 
     t.forward(branche) 
     t.right(20) 
     arbre(branche-15,t) 
     t.left(40) 
     arbre(branche-15,t) 
     t.right(20) 
     t.backward(branche) 
def main(): 

    t.up() 
    t.down() 
    t.color("green") 
    arbre(90,t) 

for k in range(0,17): 
    t.left(10) 
    main() 

t.right(80) 
t.backward(50) 
t.penup() 
t.forward(25) 
t.pendown() 
t.right(60) 
for k in range(0,11): 
    t.left(10) 
    main() 
+1

你似乎誤解了什麼一類實際上是。這些代碼實際上沒有一個類是有意義的。而且,對於可以放入函數或類中的代碼量沒有限制。 – user2357112

+0

這取決於你對課堂的目的:它有什麼對象和方法?哪些部分參數化?這是這個「主要」方法的一部分嗎?什麼是初始化?調用程序的功能是什麼? – Prune

回答

0

你可以寫你的類,無論你的代碼的長度,但你可以減少你這樣的代碼:

import turtle as t 
t.tracer(2,1) # pour accelerer le dessin 
def arbre(branche,t): 
    if branche > 5: 
     t.forward(branche) 
     t.right(20) 
     arbre(branche-15,t) 
     t.left(40) 
     arbre(branche-15,t) 
     t.right(20) 
     t.backward(branche) 

def main(n): 
    for k in range(n): 
     t.left(10) 
     arbre(90,t) 

t.color("green") 
main(17) 

t.right(80) 
t.backward(50) 
t.penup() 
t.forward(25) 
t.pendown() 
t.right(60) 

main(10)