Якщо ви кинете яйце ASCII в заданому напрямку, ви закінчите вказівкою ASCII розміром n . Він "починається" з одного o
(жовток) і продовжується в заданому напрямку "лініями", що складаються з 2 до n *
's. У *
«и відокремлені один від одного одним" простір ", а o
й все" лінії " *
» S відокремлені один від одного "ліній" "простору".
Напрямок бризки може бути будь-яким з восьми напрямків 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
* *
* * *
* * * *
* * * * *