Brainfuck - 680
teste aqui: ideone.com/Wi9ftB
>>>++++[>+++++++++[>+++[<<<<+<+>>>>>-]<<<+<<<+<+>>>>>>-]<-]+<++++++++<+++<---------<++++++++
++++<----<++++++++++<+++[>>>+.>>>.<<<<.>>>>>>[>[<<<<<<--------.-.>>>.<<<<.>+..<.>>>.>-----.<
------------.+++++++++.+++.------------.++++++++.++++>+++++.<<<<.>.+.>>>>->>-]+<<+>-]+<[<<<<
+.>>>.<<<<.>+.<.>>>.>-----.<<.>---.+++.<.>----.++++>+++++.<<<<.>+.>>>>-]<<<<<.>>>.>-----.<<.
>---.+++.<.>----.<<<.>>>+++++++.---.<.>----.++++>+++++.<<<<<.<-]>[>>++++<<-]>>---.[-]<[>+<-]
>>++.>>-----.<+++.<.<.>++.>---.-..<------.<.>>++++.---.<++.>----.<<.>--.>+++++++.---.++++++.
-------.<+++.<.>>++++++.<++++.---.<.>--.>--------.+++.<.>----.<<.>>+++++++++.-----.-.-----.-
-.+.>[>+++<-]>-.<<<---[>>+<<--]>>--.
como prometi, aqui está uma versão melhor. meu cérebro parece ... ooh, então é daí que o nome vem.
explicação: (porque é impossível de manter e não quero esquecer como funciona)
primeiro, você deve escolher o melhor layout de dados para esse desafio. eu vim com
-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
Temos que acreditar que isso é ideal, a menos que haja muitos turnos (nesse caso, você precisará reorganizar o layout)
Depois disso, usei um loop 4x9x3 para definir os valores iniciais para nova linha, número, as duas letras minúsculas e a vírgula. (todos os códigos ASCII menores têm 4x9 = 36 e as duas letras minúsculas têm 4x9x3 = 108, então adicionei e subtraí algumas para obter seu valor real)
Quando a predefinição é concluída, o código entra no loop mais externo que é executado 3 vezes. Eu explico por pseudocódigo.
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'
Quando esta seção estiver concluída, basta imprimir a última linha. Mas temos um W maiúsculo que deve ser produzido sem usar muitos caracteres. Neste ponto, estamos aqui:
Address Value Pointer
-4 0 <--
-3 10
-2 32
-1 50
1 99
2 111
3 44
então eu coloquei [-3] 4 vezes para [-1] e subtraia 3 para obter 87 (W): >[>>++++<<-]>>---.
apague-o [-]
e mova-o [-2] para este local [-1] para que o espaço fique próximo das letras minúsculas.<[>+<-]
Depois disso, apenas imprime as letras. letras minúsculas nº 1 são para a parte inferior 97-107 e letras minúsculas nº 2 são para a região acima.