2015-03-17 2 views
0

Я пытаюсь сделать шахматную доску. У меня есть этот код, чтобы сделать контрольную панель, на которой работают строки, которые не совпадают, как мне заставить каждую строку начинать с начала, например, вернуться назад 150 ?. Я попробовал один ряд идут в обратном направлении 150, а затем второй назад 120python turtle checkerboard каждая строка начинается 30 пикселей вправо

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() 

ответ

0

Это собирается вернуться на то же расстояние для каждой строки таблицы, это не правильно. Вам нужно реализовать некоторую логику, чтобы вернуть нужную сумму для каждой строки. Например, вы можете заменить цикл first_row, second_row и for следующим образом:

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

Отличный материал, который отличнее и намного проще. – Shezza