Zeronium
Авг. 13, 2020 12:08:24
В общем такая задачка:
# -*- coding: utf-8 -*-
# (цикл for)
# Нарисовать стену из кирпичей. Размер кирпича - 100х50
# Использовать вложенные циклы for
# А это мой код:
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 должно быть двойным, но не получается. Где я напартачил?
FishHook
Авг. 13, 2020 12:18:27
Zeronium
Мне подсказывали, что условие if должно быть двойным
Неужели вы думаете, что фразы подобные этой хоть как-то приближают читающих ваш пост к пониманию того, что вы написали?
Zeronium
Авг. 13, 2020 14:53:49
Вообще-то я обратился за помощью к к тем, кто реально может помочь. А желающие поумничать могут следовать мимо.
FishHook
Авг. 13, 2020 17:09:38
Zeronium
Вообще-то я обратился за помощью к к тем
Так тебе бы и помогли, может быть даже я бы и помог, только как тебе помочь, когда тебя понять невозможно? Задача сформулирована наредкость бестолково. “Нарисовать стену из кирпичей. Размер кирпича - 100х50”. Ты считаешь, что этого достаточно? Сколько должно быть кирпичей, какой размер стены, каково взаимное расположение кирпичей, как должны быть ориентированы кирпичи, какую графическую библиотеку надо применять и так далее. То что ты написал, это не постановка задачи, это белиберда.
Что такое “двойной иф”? Как это понять?
Ты либо внятно, понятно, технически грамотным языком описываешь свои проблемы, либо твоё “обращение за помошью” будет удалено. Код, кстати, нужно оформлять в тегах кода.
Zeronium
Авг. 13, 2020 18:08:44
Эта “белиберда” и есть условие задачи, и не я его придумал.
Библиотека указана в коде: import simple_draw as sd
Размер стены: sd.resolution = (1500, 800)
Кирпичи сориентированы, как в обычной кирпичной кладке: по оси х - 100, по оси у - 50. Каждый чётный (можно наоборот - нечётный) ряд по оси у смещается на 0,5 кирпича.
Zeronium
Авг. 13, 2020 18:18:09
Сам код в первом сообщении получился без отступов. На скрине код с отступами ,как я его писал в pycharm.
VadimK
Авг. 13, 2020 20:36:44
Вроде как август, время каникул. Откуда народ прет с такими ученическими задачами ?
FishHook
Авг. 14, 2020 10:01:13
Судя по идиотской формулировке задания, где-то открылись очередные курсы юных хакеров
StUdeHt
Авг. 21, 2021 13:02:33
Простое и элегантное решение на том этапе на котором находятся пользователи данного курса.
import simple_draw as sd
left_bottom_x, left_bottom_x, = 0, 0
right_top_x, right_top_y = 0, 0
step_x, step_y = 100, 50
for i in range(12):
left_bottom_x = i * step_x
right_top_x = step_x + i * step_x
left_bottom_y = i * step_y
right_top_y = i * step_y + step_y
if i % 2 == 0:
for j in range(7):
left_bottom_x = j * step_x - step_x / 2
right_top_x = j * step_x + step_x / 2
sd.rectangle(left_bottom=sd.get_point(left_bottom_x, left_bottom_y),
right_top=sd.get_point(right_top_x, right_top_y), color=sd.COLOR_YELLOW, width=1)
else:
for r in range(7):
left_bottom_x = r * step_x
right_top_x = step_x + r * step_x
sd.rectangle(left_bottom=sd.get_point(left_bottom_x, left_bottom_y),
right_top=sd.get_point(right_top_x, right_top_y), color=sd.COLOR_YELLOW, width=1)
sd.pause()