При возникновении подобных проблем вы должны спросить себя, что такое «атомарная» операция, которая - повторяющаяся снова и снова - генерирует ваше полное решение.Вы уже нашли свой основной «атом»: нарисовать сторону квадрата:
t.forward(60)
Теперь, каков следующий уровень «атомности»?Ну, повторяя четыре раза в сторону, вы можете получить квадрат (как вы правильно выяснили сами)
for a in range(4):
t.forward(60)
t.left(90)
Теперь, в том же духе, вы можете прийти к выводу, что если вы повторите 8 раз выше, вы получаете линию, и если вы повторите 8 раз строку, вы получите полный чекборд.Это должно быть что-то вроде:
for col in range(8):
for row in range(8):
# draw a square here
Теперь вы уже написали себе функцию рисования квадрата, единственная проблема в том, что вам нужно будет нарисовать каждый из них в разных местах.Ключевой момент, на котором вы должны сосредоточиться: Можете ли вы придумать способ расчета этого местоположения, исходя из значений col
и row
?
Если вы застряли,Я разместил пример реализации здесь , Я уверен, что вам не нужно проверять это , но если вы это сделаете, вот дополнительное назначение: вместо того, чтобы использовать этот код какповерните внутренний круг в вызове к отдельной функции draw_square(row, col)
.
РЕДАКТИРОВАТЬ: Для дополнительных очков и гордости, после выполнения упражнения, наблюдать, как большинство линий впроверочная доска перерисовывается снова и снова .С очень небольшим усилием вы можете удвоить эффективность вашей программы.Вы можете подумать, как?
HTH!