CSV и JSON · 10 из 16
Панно из JSON
Вера заказала для стены кофейни панно: круги и полосы, как на афишах двадцатых годов. Художница прислала эскиз не картинкой, а файлом JSON — список фигур с цветами, — и пообещала потом присылать новые варианты так же. Вера хочет смотреть варианты на экране, прежде чем красить стену.
Что сделать
Нарисуйте панно по эскизу из JSON: фигуры кладутся по порядку, следующая поверх предыдущих.
Что приходит
tekst— эскиз: строка JSONvysotaиshirina— размер панно в клетках
Что вернуть
Список рядов сверху вниз; в клетке — цвет последней накрывшей её фигуры или цвет фона.
Допишите функцию panno в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
Эскиз с фоном 1 и одной полосой цвета 5: с клетки x = 1, y = 0 шириной 2 и высотой 1. На панно 2 × 4 полоса ложится на вторую и третью клетки верхнего ряда: [[1, 5, 5, 1], [1, 1, 1, 1]].
panno('{"fon": 1, "figury": [{"vid": "pryamougolnik", "x": 1, "y": 0, "w": 2, "h": 1, "cvet": 5}]}', 2, 4)
[[1, 5, 5, 1], [1, 1, 1, 1]]
Эскиз — объект JSON:
"fon"— цвет фона, целое; ключа может не быть — тогда фон 0;"figury"— список фигур; ключа может не быть — тогда фигур нет.
Фигура — объект с ключом "vid":
"pryamougolnik"— ещё"x","y"(левая верхняя клетка),"w","h"(ширина и высота в клетках) и"cvet"; накрывает столбцы отxдоx + w − 1и строки отyдоy + h − 1;"krug"— ещё"x","y"(центр),"r"(радиус) и"cvet"; накрывает клетки, у которых(столбец − x)² + (строка − y)² ≤ r².
Фигуры другого вида пропускаются: художница пробует новые, и старая программа не должна на них падать. x — столбец, y — строка, обе с нуля, сверху вниз и слева направо. Фигура может выходить за край панно: что за краем, не рисуется.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.