Моя перша в історії програмування головоломок та коду для гольфу - це семикосовий показ . Ось мій перший виклик, який також базується на 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, не відображаються.