2017-10-16 1 views
0
def main(): 
    square(0,0,50,'red') 


def square(x,y,width,color): 

    turtle.penup() 
    turtle.goto(0,0) 
    turtle.fillcolor(color) 
    turtle.pendown() 
    turtle.begin_fill() 

    for number in range(5): 
     for count in range(4): 
      turtle.forward(width) 
      turtle.left(90) 
     turtle.end_fill() 
     x = x+50 
     turtle.goto(x,y) 


    turtle.showturtle() 

は、これは私の5つの正方形の1行を与える新:タートル25個の正方形が使用して、チェッカーボードのループ

main() 

メイン関数を呼び出します。どのように私は外側のループを4つ以上描くのですか? そのような5つの四角い行の行 - 5つのチェッカーボード?

答えて

0

"square"関数を単純化して、1つの正方形だけを描画しました。次に、square関数を呼び出すネストループを含む別の関数を追加しました。 シンプルにして、機能ごとに1つの責任しか負わないようにしてください。

import turtle 

def main(): 
    board(5, 5, 50) 
    input("Hit enter to close") 

def square(x,y,width,color): 
    turtle.penup() 
    turtle.fillcolor(color) 
    turtle.goto(x, y) 
    turtle.pendown() 
    turtle.begin_fill() 
    for side in range(4): 
     turtle.forward(width) 
     turtle.left(90) 
    turtle.end_fill() 

def board(rows, columns, square_width): 
    turtle.showturtle() 
    for row in range(rows): 
     for column in range(columns): 
      color = "red" if (row + column)%2 == 1 else "white" 
      square(row*square_width, column*square_width, square_width, color) 
    turtle.hideturtle() 
0

あなたはすでに正方形の行を描くコードを持っています。これは今あなたが持っているループです。

コードを5回実行したいので、必要に応じて変数を変更して、別のループにまとめてください。この線に沿って何か:スタイルにも

for i in range(5): 
    for number in range(5): 
     for count in range(4): 
      turtle.forward(width) 
      turtle.left(90) 
     turtle.end_fill() 
     x += width 
     turtle.goto(x,y) 
    x -= 5*width 
    y += width 

ノート、square()は、そのパラメータのほとんどを無視しています。 xyの値にかかわらず、カメを(0,0)に移動するようにハードコーディングします。後でgotoがこれらの値を使用するため、0以外の値に設定した場合、コードが破損します。の行は、タートルの線が使用するにもかかわらず、widthの値を無視します。もう一度、50以外の値に設定すると、これは中断されます。

関連する問題