Смотрите также: Ротатагон
Вызов
Учитывая строку в качестве входных данных, выведите ее wordagon.
Wordagons
Словоагон - это способ представления строки в шестиугольнике. Теперь давайте создадим слово из строки hexa
:
Во-первых, вы начинаете с первого символа в строке и помещаете его в центр:
h
Затем вы берете следующий символ в строке и добавляете шестиугольный слой:
e e
e h e
e e
Затем добавьте следующий слой:
x x x
x e e x
x e h e x
x e e x
x x x
Наконец, добавьте последний слой:
a a a a
a x x x a
a x e e x a
a x e h e x a
a x e e x a
a x x x a
a a a a
И теперь у вас есть слово для строки hexa
.
Примеры
Вот некоторые, которые я подготовил ранее:
hello
o o o o o
o l l l l o
o l l l l l o
o l l e e l l o
o l l e h e l l o
o l l e e l l o
o l l l l l o
o l l l l o
o o o o o
PPcg
g g g g
g c c c g
g c P P c g
g c P P P c g
g c P P c g
g c c c g
g g g g
o *
* * *
* *
* o *
* *
* * *
(T_T)
) ) ) ) )
) T T T T )
) T _ _ _ T )
) T _ T T _ T )
) T _ T ( T _ T )
) T _ T T _ T )
) T _ _ _ T )
) T T T T )
) ) ) ) )
Обратите внимание, что завершающие и / или ведущие новые строки разрешены.
выигрыш
Самый короткий код в байтах побеждает.
code-golf
ascii-art
hexagonal-grid
Бета распад
источник
источник
Ответы:
Pyth - 29 байт
Тестовый пакет .
источник
Python 2, 83 байта
Печатает словогон, а затем вылетает (который печатает только в STDERR).
Пример:
xnor сэкономил 5 байтов. Благодарность!
источник
y
ним, завершивn=len(s)\nwhile 1:n-=1;y=abs(n);...
работу с ошибкой.Vim, 92 байта
Обведенные кружком буквы представляют Control+ букву; Escape это побег.
источник
@q
вызывает бесконечный цикл для меня. Он отлично работает, если его убрать.Mathematica
100219 байтЕсли ASCII-Art не обязательно должен быть Terminal-Art, это должно быть в силе.
Мое раннее представление по ошибке нарисовало звезду, а не шестиугольник. Я не вижу, как я был так выключен!
CirclePoints@6
возвращает вершины единичного шестиугольника, предполагая, что центр находится в начале координат.Subdivide
координаты соседних вершин находят одинаково расположенные позиции вдоль соответствующего ребра.Счетчик от 1 до
StringLength -1
входной строки позволяет обрабатывать каждый слой словагона отдельно.По мере
n
увеличения увеличивается и расстояние до каждой вершины от начала координат.Text[s~StringPart~1,{0,0}]
печатает первую букву ввода в начале координате @ "Wordagon"
Для любопытных, вот как выглядела звездная версия. Я знаю, это было далеко от цели. Он показывал только буквы в вершинах шестиугольника.
источник
Рубин, 82 байта
перебирает
1-n..n-1
в обоих направлениях i = y и j = x. Без начальных пробелов в каждой строке результат будет выглядеть, как показано ниже, в результате выбора символа изs
индекса[[i.abs+j,i.abs,-j].max]
. Добавление ведущих пробелов образует необходимый шестиугольник.Неуправляемый в тестовой программе
Типичный вывод
источник
JavaScript (ES6), 118 байт
Где
\n
представляет буквальный символ новой строки. На основании моего ответа на вызов Hexplosive ASCII-art, хотя части решения напоминают ответ Ruby от @ LevelRiverSt. Различные компонентыMath.max
производят следующую продукцию дляl=3
:Максимальное значение берется, а значения больше, чем
l
удаляются, создавая таким образом форму шестиугольника, а остальные значения отображаются в символы из строки:источник
05AB1E , 31 байт
объяснение
Используя симметрию, чтобы создать только верхнюю часть шестиугольника,
затем отразить это, чтобы сформировать нижнюю часть.
Попробуйте онлайн!
источник
Python 2, 104 байта
источник
PHP - 202 байта
Использование из командной строки:
например:
Тестовый пакет .
источник