- 22, Oct 2024
- #1
Представьте себе прямоугольную сетку
characters represents the taut strings on a loom (the warp) that other threads (уток), которую мы представим как----- ----- ----- -----
|-|-|
|-|-|
|-|-|
|-|-|
, can be woven around.
Вот нетканая основа ткацкого станка 7×4:
|||-|
|-|||
|||-|
|-|||
Существует несколько способов вплетения утка в основу, самый простой из которых — полотняное переплетение.
В первом ряду полотняного переплетения уток начинается над первой нитью основы, идет ниже второй нити, затем над третьей нитью, затем под четвертой и так далее.
Второй уточный ряд идентичен первому, но смещен вправо на одну нить основы, поэтому он начинается снизу, затем переходит вверх и так далее.
На нашем ткацком станке 7×4 полотняное переплетение выглядит так:
-|||-
||-||
-|||-
||-||
Мы можем описать полотняное переплетение, сказав, что уток проходит по основе. 1 время, то под 1 время, и каждая последующая строка сдвигается 1 строка вправо.
Обобщенное переплетение можно описать, если уток проходит по основе. в раз, то под ты раз, причем каждая последующая строка сдвигается на с струны вправо. (Все значения являются целыми числами, с может быть 0 или отрицательным, ты и в должно быть неотрицательным.)
Ткацкий станок 7×4 с в = 1, ты = 2, с = 2, тип саржевое переплетение:
-||-||-
||-||-|
|-||-||
-||-||-
Испытание
Ваша задача — написать кратчайшую программу (в байтах), которая создает сплетенный узор из полос и тире по заданному в, ты, с, ширина и высота ткацкого станка, а также начальная смена.
начальная смена — количество нитей, на которые первый ряд в утке сдвинут вправо (0 в примерах выше). Каждая последующая строка сдвигается на с больше строк.
Ваша программа должна принять эти 6 чисел в каком-нибудь простом для использования формате (стандартный ввод, вызов функции и т. д.) и вывести плетеную сетку из полос и прямоугольников на стандартный вывод. Вы можете предположить, что все введенные данные действительны. (Все значения являются целыми числами, ширина и высота должны быть положительными. начальная смена может быть что угодно.)
Примеры
ширина = 5, высота = 4, начальный сдвиг = 0, v = 1, u = 3, s = -2:
-|-|-|-
|-|-|-|
-|-|-|-
|-|-|-|
ширина = 5, высота = 4, начальный сдвиг = 3, v = 1, u = 3, s = -2:
|||||||
|||||||
|||||||
|||||||
ширина = 5, высота = 4, начальный сдвиг = 1, v = 1, u = 1, s = 0:
-
ширина = 5, высота = 4, начальный сдвиг = 0, v = 1, u = 0, s = 0:
|
Примечания
- Рисунок всегда начинается с утка над основой в верхнем левом углу сетки (если изначально он не был смещен).
- Все уточные нити идут слева. Они не спиральный этот.
- ты + в не обязательно кратно ширине сетки.
- ты и в оба не могут быть 0
#код-гольф #ascii-art