Arka fon
Stack Cats , Martin Ender tarafından yapılan geri dönüşümlü ezoterik bir dildir. Stack Cats'deki her komut ya kendisinin tersidir (simetrik bir karakter olarak temsil edilir -_:T|
) veya ters komutuna sahiptir (ayna görüntüsü gibi temsil edilir ()
{}
[]
<>
). Stack Cats, tüm programın kendisinin ayna görüntüsü olması için güçlü bir sözdizimsel gereksinime sahiptir. Bunun geçerli herhangi bir Stack Cats programının doğal bir ayna görüntüsü ortamı olduğu anlamına geldiğini unutmayın. .
Stack Cats'in tüm komut seti:
- Kendinden simetrik:
!*+-:=ITX^_|
- Simetrik çiftler:
()
{}
[]
<>
\/
Diğer karakterler geçersiz; yukarıdaki karakter setinde olmayan bir karaktere sahip olan herhangi bir girdi yanlış çıktı vermelidir.
Dilin ek kısıtlaması vardır ()
ve {}
çiftler her zaman dengelenmelidir, ancak basitlik için bu durumu kontrol etmeniz gerekmez.
Aşağıdakiler geçerli bir Stack Cats programı için bazı örneklerdir (tekrar, dengeli parens olup olmadığını kontrol etmediğinizi unutmayın):
{[+]==[+]}
[)>^<(]
({T)}|{(T})
<(*]{[:!-_:>}<[<)*(>]>{<:_-!:]}[*)>
Bunlar değil:
b<+>d
())(
({[<++<]})
Meydan okuma
Verilen dizenin geçerli bir Stack Cats programı olup olmadığını belirleyen bir program veya işlev yazın. Kodunuz ayrıca doğal bir ayna görüntüsü ortamı olmalıdır , yani:
- Kodunuz kendisinin ayna görüntüsü olmalıdır.
- Kodun tamamı doğal olarak görüntüleniyorsa, kendisinin ayna görüntüsü olduğu sürece kodunuzda bir veya daha fazla yeni satır olabilir.
- Ekranı değiştirmediği için her satıra sondaki boşlukları atlayabilir veya ekleyebilirsiniz.
- Sekme karakterlerine, ekranda bazı belirsizlikler bulunduğundan izin verilmez.
Not: kodunuzu yok değil geçerli bir Yığın Kediler programı olmak zorunda; Stack Cats'de izin verilmeyen bazı ekstra karakterler içerebilir. (Tam liste için aşağıya bakın.)
Örneğin, aşağıdaki iki program simetriktir (ve dolayısıyla geçerli bir sunum ), üçüncüsü değildir:
({bTd})
[<q|p>]
({bTd})
IXI
({bTd})
IXI
- "Ayna simetrisi" ile ilgili olarak, yalnızca Stack Cats tarzı simetri dikkate alınır (ör.
({IH})
ayna simetrisi olmasına rağmen geçerli bir sunum değildir). - Kodunuz yalnızca bu karakter kümelerini ve yeni satırı içerebilir:
- Kendinden simetrik: boşluk (
0x20
) +!"'*+-.8:=AHIMOTUVWXY^_ovwx|
- Simetrik çiftler:
()
/\
<>
[]
bd
pq
{}
- Kendinden simetrik: boşluk (
SE'de kod olarak görüntülendiğinde karakter kümesi kesinlikle simetrik veya kendinden simetrik olarak seçilir.
Giriş ve çıkış
Giriş aralığı, yazdırılabilir ASCII karakterlerinin tek satırlık bir dizesidir .
Girişi dize, karakter listesi veya ASCII değerleri listesi olarak almayı seçebilirsiniz.
Çıktılardan birini seçebilirsiniz:
- Seçtiğiniz dil tarafından tanımlanan doğruluk / tahrif değerlerinden herhangi biri
- Gerçek sonuç değerleri girişler arasında farklılık gösterebilir (örneğin doğru bir girdi için çıkış 1 ve başka bir doğru olan için 2).
- Doğruluk ve yanlış değerlerin değiştirilmesine izin verilmez.
- Sırasıyla true / false için herhangi iki sabit değer
- Bu durumda, sonuç değerleri tam olarak iki sabit değerden biri olmalıdır.
Gönderiminizde giriş yönteminizi ve çıkış değerlerinizi belirtmelisiniz.
Kazanma Koşulu
Bu kod golfü , bu yüzden her dilde en düşük bayt kazanır.
notlar
- Standart boşluklar her zamanki gibi yasaktır.
- Tabii bunu Stack Cats'de çözebilirsiniz, ancak şans kod boyutunuzu yarıya indirmenize izin veren bir bayrak kullanamazsınız. Ve almak çok ciddi bir dil: P
#
izin verilmiyor?