Mon tout premier programme de puzzles de programmation et de golf de code est l' affichage à sept barres obliques . Voici mon premier défi, également basé sur un affichage à 7 segments.
En plus des chiffres, je pense souvent au type de lettres que je peux afficher à l'aide d'un simple affichage à 7 segments. Il s'avère que beaucoup de lettres peuvent être affichées. En fait, toutes les lettres sauf les lettres K, M, V, W, X peuvent être affichées à l'aide d'un seul affichage à 7 segments. En effet, vous pouvez afficher les minuscules ou les majuscules d'une lettre. par exemple
"abcdef" peut être affiché comme
_ _ _ _
!_!!_ ! _!!_ !_
! !!_!!_ !_!!_ !
Notez que chaque caractère est une matrice 3x3 composée de !et _.
Bien sûr, l'affichage à 7 segments peut être utilisé pour afficher des chiffres et des symboles:
_ _ _ _ _ _ _
! _ !_ !_ ! _! !!_ !_!! !_!!_!
! _!!_ !_! !_! ! _!! !_ ! ! _!
Certaines lettres peuvent avoir des majuscules et des minuscules:
_ _
! _ !_!!_ ! ! ! _ ! !
!_ !_ ! !! ! ! !!_!!_!!_!!_!
Voici l'ensemble complet des personnages:
_ _ _ _ _ _ _ _ _
! ! ! _! _!!_!!_ !_ !!_!!_! _ !_ _ _ _!
!_! !!_ _! ! _!!_! !!_! _! !_ ! ! !!_!!_! !
_ _ _ _ _ _ _ _ _ _
!_!!_ ! _!!_ !_ ! !_! ! !! _ ! !!_!!_! _ !_ !_ ! !!_! _!
! !!_!!_ !_!!_ ! !_!! ! !!_!!_ ! !!_!! !! _!!_ !_! _!!_
Faites attention à la présence d'un espace blanc ( ), d'un tiret ( -) et d'un point d'interrogation ( ?). La lettre I, Oet Zsont les mêmes que les numéros 1, 0et 2respectivement.
Dans ce défi, vous allez écrire un programme ou une fonction pour afficher une chaîne en utilisant le format d'affichage à 7 segments ci-dessus.
Règles
Vous pouvez écrire un programme ou une fonction
C'est le code-golf, le code le plus court en octets gagne
Votre programme ou fonction doit recevoir des données de STDIN ou en tant que paramètre. Et génère une chaîne vers STDOUT ou sous forme de chaîne sur 3 lignes sans espace de début mais terminée par un saut de ligne. Manipulez
CHIOUcorrectement le boîtier supérieur / inférieur .Vous pouvez éventuellement imprimer des espaces blancs à la fin
Vous devez suivre le format ci-dessus. Utilisation du trait de soulignement
_et du point d'exclamation!pour former votre affichage à 7 segments.Vous devez prendre en charge les espaces blancs (
), les tirets (-) et les points d'interrogation (?)Si la chaîne contient des caractères non pris en charge (k, m, v, w, x), un seul caractère d'erreur (3 ligne d'horizon, voir exemple) s'affiche. Outre les 5 caractères non pris en charge, vous pouvez supposer que l'entrée est composée uniquement d'un jeu de caractères pris en charge.
J'ai choisi de ne pas avoir de lettre pour L (
l) minuscule en raison de confusions mais si vous êtes si enclin, vous pouvez l'afficher comme un1à droite ou à gauche.
Exemples
$./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) avec le saut de ligne (LF, \n). * nix utilise LF et Windows utilise CRLF. Seuls certains systèmes hérités utilisent CR seul. Plus d'informations ici: en.wikipedia.org/wiki/Newline
k, m, v, w, xne s'affichent pas.