Benim ilk Programlama Bulmacalar ve Kod Golf Seven-Slash Ekran . İşte 7 segmentli ekrana dayanan ilk Mücadelem.
Rakamların yanı sıra, 7 bölümlü basit bir ekran kullanarak ne tür harfler gösterebileceğimi düşünüyorum. Çok sayıda harf görüntülenebileceği ortaya çıkıyor. Aslında, K, M, V, W, X dışındaki tüm harfler tek bir 7 segmentli ekran kullanılarak görüntülenebilir. Bunun nedeni, bir harfin küçük veya büyük harfini görüntüleyebilmenizdir. Örneğin
"abcdef" şu şekilde görüntülenebilir:
_ _ _ _
!_!!_ ! _!!_ !_
! !!_!!_ !_!!_ !
Not her karakter oluşan bir 3x3 matris olduğu !
ve _
.
Tabii ki, 7 segmentli ekran sayıları ve sembolleri görüntülemek için kullanılabilir:
_ _ _ _ _ _ _
! _ !_ !_ ! _! !!_ !_!! !_!!_!
! _!!_ !_! !_! ! _!! !_ ! ! _!
Bazı harflerin hem büyük hem de küçük harfleri olabilir:
_ _
! _ !_!!_ ! ! ! _ ! !
!_ !_ ! !! ! ! !!_!!_!!_!!_!
İşte karakterlerin tamamı:
_ _ _ _ _ _ _ _ _
! ! ! _! _!!_!!_ !_ !!_!!_! _ !_ _ _ _!
!_! !!_ _! ! _!!_! !!_! _! !_ ! ! !!_!!_! !
_ _ _ _ _ _ _ _ _ _
!_!!_ ! _!!_ !_ ! !_! ! !! _ ! !!_!!_! _ !_ !_ ! !!_! _!
! !!_!!_ !_!!_ ! !_!! ! !!_!!_ ! !!_!! !! _!!_ !_! _!!_
Beyaz boşluk ( ), tire (
-
) ve soru işareti ( ?
) bulunduğuna dikkat edin. Mektup I
, O
ve Z
sayıları aynıdır 1
, 0
ve 2
sırasıyla.
Bu meydan okumada, yukarıdaki 7 segmentli görüntüleme biçimini kullanarak bir dize görüntülemek için bir program veya işlev yazacaksınız.
kurallar
Bir program veya işlev yazabilirsiniz
Bu kod golfü, bayttaki en kısa kod kazanıyor
Programınız veya işleviniz STDIN'den veya parametre olarak girdi almalıdır. Ve bir dize STDOUT ya da satır aralığı olmadan ancak satırsonu ile sonlandırılmış 3 satırda bir dize olarak çıktılar. Büyük / küçük harfleri
CHIOU
doğru kullanın.İsteğe bağlı olarak sondaki boşlukları yazdırabilirsiniz
Yukarıdaki biçimi izlemelisiniz. 7 segmentli ekranınızı oluşturmak için alt çizgi
_
ve ünlem işareti kullanma!
.Beyaz boşluk (
), tire (
-
) ve soru işaretini (?
) desteklemelisinizDize desteklenmeyen karakter içeriyorsa (k, m, v, w, x), tek bir hata karakteri (3 ufuk çizgisi, örneğe bakın) görüntülenir. Desteklenmeyen 5 karakterin yanı sıra, girdinin yalnızca desteklenen karakter kümesinden oluştuğunu varsayabilirsiniz.
l
Kafa karışıklıkları nedeniyle küçük L ( ) harfine sahip olmamayı tercih ettim, ancak eğer bu kadar eğimli iseniz, bunu1
sağa veya sola doğru gösterebilirsiniz .
Örnekler
$./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
) satır besleme (LF, \n
) ile karıştırdınız. * nix LF, Windows CRLF kullanır. Sadece belirli eski sistemler CR'yi kendi başına kullanır. Daha fazla bilgi için: en.wikipedia.org/wiki/Newline
k, m, v, w, x
görüntülenmemesini sağlamaktır.