Моя перша в історії програмування головоломок та коду для гольфу - це семикосовий показ . Ось мій перший виклик, який також базується на 7-сегментному дисплеї.
Окрім цифр, я часто думаю про те, які букви я можу відображати за допомогою простого 7-сегментного дисплея. Виявляється, багато літер можуть бути відображені. Насправді всі, крім букв K, M, V, W, X, можуть відображатися за допомогою одного 7-сегментного дисплея. Це тому, що ви можете відображати або малі, або великі літери. напр
"abcdef" може відображатися як
_ _ _ _
!_!!_ ! _!!_ !_
! !!_!!_ !_!!_ !
Зауважте, що кожен символ є матрицею 3x3, що складається з !
та _
.
Звичайно, 7-сегментний дисплей можна використовувати для відображення цифр та символів:
_ _ _ _ _ _ _
! _ !_ !_ ! _! !!_ !_!! !_!!_!
! _!!_ !_! !_! ! _!! !_ ! ! _!
Деякі літери можуть мати верхній і нижній регістр:
_ _
! _ !_!!_ ! ! ! _ ! !
!_ !_ ! !! ! ! !!_!!_!!_!!_!
Ось повний набір символів:
_ _ _ _ _ _ _ _ _
! ! ! _! _!!_!!_ !_ !!_!!_! _ !_ _ _ _!
!_! !!_ _! ! _!!_! !!_! _! !_ ! ! !!_!!_! !
_ _ _ _ _ _ _ _ _ _
!_!!_ ! _!!_ !_ ! !_! ! !! _ ! !!_!!_! _ !_ !_ ! !!_! _!
! !!_!!_ !_!!_ ! !_!! ! !!_!!_ ! !!_!! !! _!!_ !_! _!!_
Зверніть увагу, що є пробіл ( ), тире (
-
) та знак питання ( ?
). У листі I
, O
і Z
такі ж , як числа 1
, 0
і 2
відповідно.
У цьому виклику ви напишете програму або функцію для відображення рядка, використовуючи 7-сегментний формат відображення вище.
Правила
Можна написати програму або функцію
Це код-гольф, виграє найкоротший код у байтах
Ваша програма чи функція повинні приймати дані з STDIN або як параметр. І виводить рядок в STDOUT або як рядок у 3 рядках без провідного простору, але закінчується новим рядком. Обробіть верхній / нижній корпус
CHIOU
належним чином.Ви можете додатково друкувати пробіли білого кольору
Ви повинні дотримуватися вищевказаного формату. Використовуючи підкреслення
_
та знак оклику!
для формування вашого 7-сегментного дисплея.Ви повинні підтримувати пробіл (
), тире (
-
) та знак запитання (?
)Якщо рядок містить непідтримуваний символ (k, m, v, w, x), відображається один символ помилки (3 лінія горизонту, див. Приклад). Крім 5 непідтримуваних символів, ви можете припустити, що вхід складається лише з підтримуваного набору символів.
Я вирішив не мати літери для малого L (
l
) через плутанини, але якщо ви настільки схильні, ви можете відображати її як1
праворуч чи ліворуч.
Приклади
$./a.out Start
_ _
!_ !_ !_! _ !_
_!!_ ! !! !_
$./a.out "7-seg dIsplay"
_ _ _ _ _ _ _
! _ !_ !_ ! _! !!_ !_!! !_!!_!
! _!!_ !_! !_! ! _!! !_ ! ! _!
$./a.out "0123456789 chiou-?"
_ _ _ _ _ _ _ _ _
! ! ! _! _!!_!!_ !_ !!_!!_! _ !_ _ _ _!
!_! !!_ _! ! _!!_! !!_! _! !_ ! ! !!_!!_! !
$./a.out "ABCDEFGHIJLNOPQRSTUZ"
_ _ _ _ _ _ _ _ _ _
!_!!_ ! _!!_ !_ ! !_! ! !! _ ! !!_!!_! _ !_ !_ ! ! _!
! !!_!!_ !_!!_ ! !_!! ! !!_!!_ ! !!_!! !! _!!_ !_!!_
$./a.out "abcdefghijlnopqrstuz"
_ _ _ _ _ _ _ _
!_!!_ _ _!!_ !_ ! !_ !! _ _ !_!!_! _ !_ !_ _!
! !!_!!_ !_!!_ ! !_!! ! !!_!!_ ! !!_!! !! _!!_ !_!!_
$./a.out "Bad Form"
_
_
_
$./a.out "Hello"
_
!_!!_ ! ! _
! !!_ !_ !_ !_!
$./a.out "World"
_
_
_
\r
) із стрічкою лінії (LF, \n
). * nix використовує LF, а Windows використовує CRLF. Лише деякі застарілі системи використовують CR самостійно. Більше інформації тут: en.wikipedia.org/wiki/Newline
k, m, v, w, x
, не відображаються.