2015-03-17 1 views
0

J'essaie de faire un damier. J'ai ce code pour faire un tableau d'échecs cela fonctionne les lignes ne correspondent pas, comment puis-je obtenir chaque ligne pour commencer au début, par exemple aller en arrière 150 ?. J'ai essayé 1 rang revenir en arrière 150, puis la deuxième arrière 120damier python chaque ligne commence 30 pixels vers la droite

import turtle 
turtle.speed(0) 

def go_to_start(): 
    turtle.pu() 
    turtle.backward(150) 
    turtle.left(90) 
    turtle.forward(250) 
    turtle.right(90) 
    turtle.pd() 

def colour(): 
    turtle.fillcolor('black') 
    for j in range(5): 
     turtle.begin_fill() 
    for i in range (4): 
     turtle.forward(30) 
     turtle.right(90) 
    turtle.end_fill() 
    turtle.pu() 
    turtle.forward(60) 
    turtle.pd() 



def first_row(): 
    turtle.pu() 
    turtle.backward(180) 
    turtle.right(90) 
    turtle.forward(30) 
    turtle.right(270) 
    turtle.pd() 



def second_row(): 
    turtle.pu() 
    turtle.backward(150) 
    turtle.right(90) 
    turtle.right(270) 
    turtle.pd() 


go_to_start() 


for j in range (5): 
    for i in range (5): 
     colour() 
    second_row() 
    first_row() 

Répondre

0

Cela va revenir à la même distance pour chaque ligne de la table, ce n'est pas correct. Vous devez implémenter une logique pour revenir à la bonne quantité pour chaque ligne. Par exemple, vous pouvez remplacer le first_row, second_row, et pour la boucle avec:

def reset(): 
    turtle.pu() 
    turtle.backward(300) 
    turtle.right(90) 
    turtle.forward(30) 
    turtle.right(270) 
    turtle.pd() 


for j in range (5): 
    for i in range (5): 
     colour() 
    #if the row is even, then go forward 30 
    if j %2 == 0: 
     turtle.forward(30) 
    #if the row is odd, then go backward 30 
    else: 
     turtle.backward(30) 
    reset() 
+0

Great stuffthank vous qui est génial et beaucoup plus simple. – Shezza