7-segmentowe cyfry mogą być reprezentowane w ASCII za pomocą _|znaków. Oto 1cyfry wielkości :
_ _ _ _ _ _ _ _
| _| _| |_| |_ |_ | |_| |_| | |
| |_ _| | _| |_| | |_| _| |_|
Większe rozmiary powstają przez proporcjonalne wydłużenie każdego segmentu. Oto kilka cyfr wielkości 3.
___ ___ ___ ___ ___ ___ ___
| | | | | | | | | |
| | | | | | | | | |
|___| |___ | |___ ___| | | |___|
| | | | | | | | | |
| | | | | | | | | |
|___| |___| | ___| ___| |___| ___|
Cel
W tym wyzwaniu masz napisać program / funkcję, która może przyjąć jedną cyfrę jako dane wejściowe i określić jej rozmiar. Haczyk: jeśli dane wejściowe nie są prawidłową cyfrą, Twój program powinien wypisać dane 0.
To jest golf golfowy , wygrywa najmniej bajtów.
Możesz napisać program lub funkcję, która może odbierać cyfrę jako STDIN lub argument i wypisywać / zwracać wartość.
Cyfry będą dostarczane jako ciąg wieloliniowy, wypełniony minimalną ilością spacji końcowej potrzebnej do utworzenia idealnego prostokąta. Końcowy znak nowej linii jest opcjonalną częścią wprowadzania. Nie będzie niepotrzebnych wiodących pól.
Gdy zostanie przekazany znak inny niż cyfra, nadal będzie się składał ze _|znaków, będzie wypełniony prostokątem i nie będzie zawierał niepotrzebnych spacji wiodących. Nie będzie pustych linii. Nie będziesz musiał radzić sobie z pustymi danymi wejściowymi.
Wyjście powinno być pojedynczą nieujemną liczbą całkowitą, z opcjonalnym końcowym znakiem nowej linii. Jeśli wejście nie jest poprawną cyfrą o dowolnym rozmiarze, wyjdź 0. W przeciwnym razie wypisz rozmiar.
Oto przydatny przewodnik po szerokościach i wysokościach każdej cyfry dla danego rozmiaru 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
Przykłady we / wy
W:
__
|
__|
|
__|
Na zewnątrz:
2
W:
|
|
|
Na zewnątrz:
0 //because it is of an invalid height. Either 1 char too short or tall.
W:
| |
| |
| |
|____|
|
|
|
|
Na zewnątrz:
4
W:
___
|
|___
| |
|___|
Na zewnątrz:
0 //1 char too wide
W:
_
|_|
| |
Na zewnątrz:
0 //it's not a digit
W:
__
|
|__
|
__|
Na zewnątrz:
2
W:
_ _
_| _|
|_ _|
Na zewnątrz:
0 //both would be valid individually, but input should be a *single* digit
W:
_
|_|
|_|
Na zewnątrz:
1
W:
|
|
Na zewnątrz:
1
W:
__|_
|
_ |
_
|__
Na zewnątrz:
0
Jest to w przybliżeniu odwrotność liczby przekształceń w 7-segmentowy wzór wyświetlania sprzed 3 lat.
0cyfra wielkości , prawda? Chyba że wymyśliłeś sposób na ich narysowanie.