Zorluk, giriş metnini, metnin çıktısını alacak beyin flak koduna çevirmektir.
Alınan öğretici burada izni ile burada
Brain-Flak'ın 'sol' ve 'sağ' olarak bilinen iki yığını vardır. Aktif yığın soldan başlar. Boş bir yığın açılırsa 0 döndürür. İşte bu kadar. Başka değişken yok. Program başladığında, her komut satırı bağımsız değişkeni etkin yığına iletilir.
Brain-Flak programındaki tek geçerli karakterler ()[]{}<>
ve her zaman dengelenmeleri gerekir. İki tür işlev vardır: Niladlar ve Monadlar . Bir nilad 0 argüman alan bir fonksiyondur. İşte tüm niladlar:
()
Birini değerlendirir.[]
Geçerli yığının yüksekliğini değerlendirir.{}
Etkin yığını açın. Açılan değeri değerlendirir.<>
Etkin yığını aç / kapat. Sıfıra değerlendirir.
Bunlar değerlendirildiklerinde birleştirilirler. Aktif yığının üstünde bir '3' olsaydı, bu pasaj:
()(){}
için değerlendirirsiniz 1 + 1 + active.pop()
5'e değerlendirmek hangi.
Monadlar bir argüman alır, bir beyin-Flak kodu. İşte tüm monadlar:
(n)
Etkin yığın üzerinde 'n' tuşuna basın.[n]
Negatif 'n' değerini değerlendirir{foo}
Sıfır yığının üstünde olmasa da, foo yapın.<foo>
Foo'yu yürütün, ancak 0 olarak değerlendirin.
Bu işlevler ayrıca içindeki değeri de döndürür,
(()()())
3 itecek ama
((()()()))
3'ü iki kez itecek .
{}
Bütün çalışmalarda toplamına değerlendirecektir. Eğer yığının üstünde '3' ve '4' varsa:
{{}}
7 olarak değerlendirir.
Program yürütüldüğünde, etkin yığın üzerinde kalan her bir değer, arasında bir satırsonu olacak şekilde yazdırılır. Diğer yığındaki değerler yok sayılır.
kurallar
- Brain-Flak'ın ascii yokken çalıştırıldığını varsayabilirsiniz. (
-A
) - Brain-flak kodu giriş gerektirmemelidir
- Tüm standart kurallar geçerlidir
- TIO'da 1024 bayta kadar herhangi bir giriş için kodun 1 dakika içinde çalışması gerekir. (TIO çıkışı yoksa bir tercüman sağlayın ve bunu makinemde çalıştıracağım (makinem TIO'ya yaklaşabilmelidir).
- Keyfi uzunluk girişini desteklemelisiniz.
- Bir dosyadan girdi alabilirsiniz.
- Test senaryoları için optimizasyona izin verilmiyor
- Deterministik çıktı gerekli
- Programların yığın temiz olması gerekmez
Test senaryoları (kodunuzu deneyin, gerçek puanlama metinleri meydan okuma gönderildikten 1-2 hafta sonra yayınlanacaktır)
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
The meaning of brain-flak is to flak your brain with pain.
`1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?
To be, or not to be, that is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles
And by opposing end them. To die-to sleep,
No more; and by a sleep to say we die
<your brain-flak code here>
The fitness pacer test is a multi stage test. Avacado Avacado Avacadad Avacadad carrot.bat carrot.jar carrot.carrot Quack Quack Quack Quack Quack Quack Quack Quack Quack downgoat doawngoat down down gaot
This challenge came from a online program that turned text into brain-fuck. However brain-fuck has limitations and it is not nearly as cool as brain-flak. I really am looking forward to cool programs :) I am glad you took the time to read this and look forward to seeing your answer.
Kazanan
Kazanmak için, her test vakası tarafından verilen beyin-flak kodunun toplam uzunluğunu, posta tarihinden 1-2 hafta sonra serbest bırakılmalıdır. En kısa toplam uzunluk kazanır.
NOT!!!!!!:
Bu kod golf değildir, kodunuzun uzunluğu hiçbir şekilde nihai puanınızı etkilemez. Temiz okunabilir kodların yapılması takdir edilmektedir. Teşekkürler!
Test senaryoları
<your brain-flak code here>
1000'in altına düşen ilk cevap ödül olarak verilir. Hangi başka bir gün için gönderemiyorum, whoops; bunun ne kadar yeni olduğunu fark etmedi