Задачка на построение стены.

Zeronium

Новичок
Пользователь
Авг 13, 2020
3
0
1
Код:
import simple_draw as sd

sd.resolution = (1500, 800)

left_bottom = sd.get_point(0, 0)
right_top = sd.get_point(100, 50)
color = sd.COLOR_YELLOW
width = 1
step_x = 100
step_y = 50

sd.rectangle(left_bottom=left_bottom, right_top=right_top, color=color, width=width)

for y in range(0, 600, 50):
    if right_top.y / 50 % 2 == 0:
        for x in range(0, 500, 100):
            left_bottom = sd.get_point(left_bottom.x + step_x, left_bottom.y)
            right_top = sd.get_point(right_top.x + step_x, right_top.y)
            sd.rectangle(left_bottom=left_bottom, right_top=right_top, color=color, width=width)
    else:
        for x in range(0, 500, 100):
            left_bottom = sd.get_point(left_bottom.x, left_bottom.y + step_y)
            right_top = sd.get_point(right_top.x, right_top.y + step_y)
            sd.rectangle(left_bottom=left_bottom, right_top=right_top, color=color, width=width)


# Неделю бьюсь, не могу построить кирпичную стену. Подсказывают, что условие if должно быть двойным, не вруба.сь, как это сделать. ПО-МО-ГИ-ТЕ-Е-Е-Е!
 
Последнее редактирование:

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Вот пример решения: ссылка.
 
  • Мне нравится
Реакции: Student и Zeronium

Zeronium

Новичок
Пользователь
Авг 13, 2020
3
0
1
Вот пример решения: ссылка.
Спасибо за ссылку, буду разбираться. Линиями я уже пробовал. Мне нужно прямоугольниками выложить стену, там как раз такой вариант в конце рассматривается.
 

Zeronium

Новичок
Пользователь
Авг 13, 2020
3
0
1
Нашёл свою ошибку, вместо левого дна и верхней вершины нужно было изначально задать координаты X и Y, а уже потом присвоить эти значения дну и вершине прямоугольника.

Код:
import simple_draw as sd

sd.resolution = (600, 600)

x = 0
y = 0
color = sd.COLOR_YELLOW
width = 2
step_x = 100
step_y = 50


for y in range(0, 600, step_y):
    if y / 50 % 2 == 0:
        for x in range(0, 600, 100):
            left_bottom = sd.get_point(x + step_x / 2, y)
            right_top = sd.get_point(x + step_x / 2 + step_x, y + step_y)
            sd.rectangle(left_bottom=left_bottom, right_top=right_top, color=color, width=width)
    else:
        for x in range(0, 600, 100):
            left_bottom = sd.get_point(x, y)
            right_top = sd.get_point(x + step_x, y + step_y)
            sd.rectangle(left_bottom=left_bottom, right_top=right_top, color=color, width=width)

sd.pause()
 

Форум IT Специалистов