Le cifre a 7 segmenti possono essere rappresentate in ASCII usando _|caratteri. Ecco le 1cifre delle dimensioni :
_ _ _ _ _ _ _ _
| _| _| |_| |_ |_ | |_| |_| | |
| |_ _| | _| |_| | |_| _| |_|
Le dimensioni più grandi si formano rendendo ogni segmento proporzionalmente più lungo. Ecco una coppia di 3 cifre.
___ ___ ___ ___ ___ ___ ___
| | | | | | | | | |
| | | | | | | | | |
|___| |___ | |___ ___| | | |___|
| | | | | | | | | |
| | | | | | | | | |
|___| |___| | ___| ___| |___| ___|
Obbiettivo
In questa sfida, devi scrivere un programma / funzione che può prendere una singola cifra come input e identificarne le dimensioni. Il problema: se l'input non è una cifra valida, il tuo programma dovrebbe essere emesso 0.
Questo è code-golf , vince meno byte.
È possibile scrivere un programma o una funzione, che può ricevere la cifra come STDIN o un argomento e stampare / restituire il valore.
Le cifre saranno fornite come una stringa a più righe, imbottita con la minima quantità di spazio bianco finale necessario per renderlo un rettangolo perfetto. La nuova riga finale è una parte facoltativa dell'input. Non ci saranno spazi iniziali non necessari.
Quando viene passata una non cifra, sarà comunque composta da _|caratteri, imbottiti in un rettangolo e non avranno spazi iniziali non necessari. Non ci saranno righe vuote. Non dovrai occuparti di input vuoti.
L'output dovrebbe essere un singolo intero non negativo, con una nuova riga finale facoltativa. Se l'input non è una cifra corretta di qualsiasi dimensione, output 0. Altrimenti, visualizza la dimensione.
Ecco una guida pratica per le larghezze e altezze di ogni cifra per una determinata dimensione N.
Digit Height Width (not counting newlines)
1 2N 1
2 2N+1 N+2
3 2N+1 N+1
4 2N N+2
5 2N+1 N+2
6 2N+1 N+2
7 2N+1 N+1
8 2N+1 N+2
9 2N+1 N+2
0 2N+1 N+2
Esempi di I / O
Nel:
__
|
__|
|
__|
Su:
2
Nel:
|
|
|
Su:
0 //because it is of an invalid height. Either 1 char too short or tall.
Nel:
| |
| |
| |
|____|
|
|
|
|
Su:
4
Nel:
___
|
|___
| |
|___|
Su:
0 //1 char too wide
Nel:
_
|_|
| |
Su:
0 //it's not a digit
Nel:
__
|
|__
|
__|
Su:
2
Nel:
_ _
_| _|
|_ _|
Su:
0 //both would be valid individually, but input should be a *single* digit
Nel:
_
|_|
|_|
Su:
1
Nel:
|
|
Su:
1
Nel:
__|_
|
_ |
_
|__
Su:
0
Questo è approssimativamente l' inverso del numero Transform in un modello di visualizzazione a 7 segmenti , a partire da 3 anni fa.
0cifra di dimensioni , vero? A meno che tu non abbia escogitato un modo per disegnarli.