7 segmentli rakamlar ASCII'de _|
karakterler kullanılarak gösterilebilir . İşte boyut 1
rakamları:
_ _ _ _ _ _ _ _
| _| _| |_| |_ |_ | |_| |_| | |
| |_ _| | _| |_| | |_| _| |_|
Her segment orantılı olarak daha uzun hale getirilerek daha büyük boyutlar oluşturulur. İşte bir çift boyut 3 basamak.
___ ___ ___ ___ ___ ___ ___
| | | | | | | | | |
| | | | | | | | | |
|___| |___ | |___ ___| | | |___|
| | | | | | | | | |
| | | | | | | | | |
|___| |___| | ___| ___| |___| ___|
Hedef
Bu zorlukta, girdi olarak tek bir rakam alabilecek ve boyutunu tanımlayabilecek bir program / işlev yazmalısınız. Catch: giriş geçerli bir basamak değilse programınız çıktı almalıdır 0
.
Bu kod golf , en az bayt kazanır.
Rakamı STDIN veya bağımsız değişken olarak alabilen bir program veya işlev yazabilir ve değeri yazdırabilir / döndürebilirsiniz.
Basamaklar, mükemmel bir dikdörtgen yapmak için gereken minimum miktarda boşlukla doldurulmuş çok satırlı bir dize olarak sağlanacaktır. Sondaki yeni satır, girdinin isteğe bağlı bir parçasıdır. Gereksiz lider alanlar olmayacak.
Rakam olmayan bir sayı geçtiğinde, yine de _|
bir dikdörtgenle doldurulmuş ve gereksiz boşluk boşlukları olmayan karakterlerden oluşacaktır . Boş satır olmayacak. Boş girdiyle uğraşmanıza gerek kalmaz.
Çıktı, isteğe bağlı son satırsonu olan tek bir negatif olmayan tam sayı olmalıdır. Giriş herhangi bir boyutta uygun bir rakam değilse, çıktı alın 0
. Başka, boyutu çıktı.
Burada, belirli bir boyut için her bir basamağın genişlikleri ve yükseklikleri için kullanışlı bir kılavuz 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
G / Ç Örnekleri
İçinde:
__
|
__|
|
__|
Dışarı:
2
İçinde:
|
|
|
Dışarı:
0 //because it is of an invalid height. Either 1 char too short or tall.
İçinde:
| |
| |
| |
|____|
|
|
|
|
Dışarı:
4
İçinde:
___
|
|___
| |
|___|
Dışarı:
0 //1 char too wide
İçinde:
_
|_|
| |
Dışarı:
0 //it's not a digit
İçinde:
__
|
|__
|
__|
Dışarı:
2
İçinde:
_ _
_| _|
|_ _|
Dışarı:
0 //both would be valid individually, but input should be a *single* digit
İçinde:
_
|_|
|_|
Dışarı:
1
İçinde:
|
|
Dışarı:
1
İçinde:
__|_
|
_ |
_
|__
Dışarı:
0
Bu yaklaşık olarak ters bir 7 kademeli ekran örüntüsünün içine sayısı Transform geri 3 yıl.
0
rakam rakamı diye bir şey yok, değil mi? Onları çizmenin bir yolunu düşünmedikçe.