Brainfuck - 680
burada test edin: ideone.com/Wi9ftB
>>>++++[>+++++++++[>+++[<<<<+<+>>>>>-]<<<+<<<+<+>>>>>>-]<-]+<++++++++<+++<---------<++++++++
++++<----<++++++++++<+++[>>>+.>>>.<<<<.>>>>>>[>[<<<<<<--------.-.>>>.<<<<.>+..<.>>>.>-----.<
------------.+++++++++.+++.------------.++++++++.++++>+++++.<<<<.>.+.>>>>->>-]+<<+>-]+<[<<<<
+.>>>.<<<<.>+.<.>>>.>-----.<<.>---.+++.<.>----.++++>+++++.<<<<.>+.>>>>-]<<<<<.>>>.>-----.<<.
>---.+++.<.>----.<<<.>>>+++++++.---.<.>----.++++>+++++.<<<<<.<-]>[>>++++<<-]>>---.[-]<[>+<-]
>>++.>>-----.<+++.<.<.>++.>---.-..<------.<.>>++++.---.<++.>----.<<.>--.>+++++++.---.++++++.
-------.<+++.<.>>++++++.<++++.---.<.>--.>--------.+++.<.>----.<<.>>+++++++++.-----.-.-----.-
-.+.>[>+++<-]>-.<<<---[>>+<<--]>>--.
söz verdiğim gibi, işte daha iyi bir sürüm. beynim gibi hissediyor .. ooh bu yüzden ismin geldiği yer orası.
açıklama: (çünkü sürdürülemez ve nasıl çalıştığını unutmak istemiyorum)
öncelikle bu zorluk için en iyi veri düzenini seçmelisiniz. ile geldim
-4 outmost loop
-3 newline char
-2 space
-1 numbers
1 lowercase #1
2 lowercase #2
3 comma, apostrophe, period
4 condition (outmost loop < 3)
5 inner loop
6 second inner loop
Çok fazla vardiya olmadıkça, bunun en uygun olduğuna inanmalıyız (bu durumda düzeni yeniden ayarlamanız gerekir)
Ondan sonra, yeni satır, sayı, iki küçük harf ve virgül için başlangıç değerlerini ayarlamak üzere 4x9x3 bir döngü kullandım. (tüm küçük ascii kodları 4x9 = 36 ve iki küçük harf de 4x9x3 = 108, sonra da gerçek değerlerini elde etmek için bazılarını ekledim ve çıkardım)
Ön ayar yapıldığında, kod 3 kez dönen en dıştaki döngüye girer. Bunu sahte kodla açıklıyorum.
for 3 to 1 where i = numbers
print '++i, '
while inner_loop != 0 # this is true after the first loop
while second_inner_loop != 0 # and this is true after the second
print '10, 11 o'clock, 12' # prints the difference
condition = 0 # it prevents the printing below
second_inner_loop += 1
inner_loop += 1
while condition != 0
print '++i, ++i o'clock, ++i'
print ' o'clock rock,\n'
Bu bölüm tamamlandığında, sadece son satırı yazdırmak zorundayım. Fakat çok fazla karakter kullanmadan üretilmesi gereken büyük bir W harfimiz var. Bu noktada biz buradayız:
Address Value Pointer
-4 0 <--
-3 10
-2 32
-1 50
1 99
2 111
3 44
bu yüzden [-3] 'i 4 kez [-1]' e ve alt çıktısını 3 'ü 87 (W)' ye getirdim: >[>>++++<<-]>>---.
daha sonra silin [-]
ve [-2] 'yi bu konuma [-1] getirerek boşluk küçük harflere yakın olacaktır.<[>+<-]
Bundan sonra sadece harfleri yazdırır. küçük harf # 1, küçük parça 97-107 için ve küçük harf # 2 ise yukarıdaki bölge içindir.