Если вы бросите яйцо ASCII в заданном направлении, вы получите знак ASCII размера n . Он «начинается» с единицы o
(желток) и продолжается в заданном направлении «линиями», состоящими от 2 до n *
. Символы *
"s" разделены одним "пробелом", а " o
и" все строки *
"s" разделены "строками" "space".
Направление знака может быть любым из восьми направлений o
, например:
1 2 3
4 o 5
6 7 8
Вот примеры ASCII знаков размера 4 в направлениях 5
, 2
и 3
соответственно. Слева фактическое ASCII знак, а справа тот же знак , но с «линиями» «пространства» заменены фактическими «линиями» (то есть -
или \
или в |
зависимости от направления) только уточнить , что подразумевается под «линия» пространства.
Size 4, direction 5
* | | |*
* | |*|
* * |*| |*
o * o| |*|
* * |*| |*
* | |*|
* | | |*
Size 4, direction 2
* * * * * * * *
-------
* * * * * *
-------
* * * *
-------
o o
Size 4, direction 3
* *
\
* * *\*
\ \
* * * *\*\*
\ \ \
o * * * o\*\*\*
Вызов
Учитывая n ≥ 1 и одно из 8 возможных направлений, напишите функцию или программу, которая выводит знак ASCII размера n в заданном направлении.
Вход и выход
Разрешен любой последовательный, разумный формат ввода. Вам не нужно отображать направления на целые числа от 1 до 8 так же, как я это делал - если какой-то другой способ указания направления проще, продолжайте. Но скажи, что ты сделал, если не ясно.
Выход будет состоять из o
, *
, пространства (U + 0020) и новой строки (U + 000A) , которые производят ASCII восклицательный знак. Передний, конечный, в противном случае дополнительные пробелы разрешены в любой строке.
правила
Это код-гольф . Стандартные правила применяются.
Больше примеров
Size 1, any direction
o
Size 3, direction 6
* * o
* *
*
Size 5, direction 7
o
* *
* * *
* * * *
* * * * *