Курс 3.5 · Раздел 12 · Урок 12.4

Размещение в окне

Расположим части карты в окне Черепашки и сохраним порядок фрагментов в списке списков.

Расположим части карты в окне Черепашки и сохраним порядок фрагментов в списке списков.
12.4 — Размещение в окне

Материал урока

Следующим шагом необходимо расположить полученные фрагменты карты в окне Черепашки. Это можно сделать случайным образом, но при этом важно сохранить их расположение в виде списка списков. Обозначим эту переменную как pic.

Затем мы будем использовать двойной цикл для нанесения штампов, соответствующих фрагментам карты — формам Черепашки, в определённых местах. Переменные n и m обозначают количество фрагментов карты по горизонтали и вертикали соответственно. Ниже приведён фрагмент программы с использованием вложенных циклов.

from turtle import Screen, Turtle, addshape, done

WIDTH, HEIGHT = 600, 450

n, m = 4, 3

# случайное распределение частей карты

numbers = list(range(n * m))

random.shuffle(numbers)

pic = [numbers[i:i + n] for i in range(0, n * m, n)]

side = WIDTH // n

sc = Screen()

...  # настройки окна

ben = Turtle()

ben.pu()

ben.ht()

...  # добавление форм Черепашки из файлов с индексами от 0 до 11

for i in range(m):

    for j in range(n):

        ben.goto(-WIDTH // 2 + (j + 0.5) * side, HEIGHT // 2 - (i + 0.5) * side)

        ...  # изменение формы Черепашки

        ben.stamp()

done()

Поверх карты нарисуем границы частей тонкими линиями белого цвета (толщина пера 2), получится так:

Фрагменты карты в окне Черепашки
Фрагменты карты в окне Черепашки