Моим первым в мире программированием головоломок и Code Golf является дисплей с семью слэшами . Вот мой первый вызов, также основанный на 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
их, не отображались.