Brainfuck - 680
kiểm tra nó ở đây: ideone.com/Wi9ftB
>>>++++[>+++++++++[>+++[<<<<+<+>>>>>-]<<<+<<<+<+>>>>>>-]<-]+<++++++++<+++<---------<++++++++
++++<----<++++++++++<+++[>>>+.>>>.<<<<.>>>>>>[>[<<<<<<--------.-.>>>.<<<<.>+..<.>>>.>-----.<
------------.+++++++++.+++.------------.++++++++.++++>+++++.<<<<.>.+.>>>>->>-]+<<+>-]+<[<<<<
+.>>>.<<<<.>+.<.>>>.>-----.<<.>---.+++.<.>----.++++>+++++.<<<<.>+.>>>>-]<<<<<.>>>.>-----.<<.
>---.+++.<.>----.<<<.>>>+++++++.---.<.>----.++++>+++++.<<<<<.<-]>[>>++++<<-]>>---.[-]<[>+<-]
>>++.>>-----.<+++.<.<.>++.>---.-..<------.<.>>++++.---.<++.>----.<<.>--.>+++++++.---.++++++.
-------.<+++.<.>>++++++.<++++.---.<.>--.>--------.+++.<.>----.<<.>>+++++++++.-----.-.-----.-
-.+.>[>+++<-]>-.<<<---[>>+<<--]>>--.
Như tôi đã hứa, đây là một phiên bản tốt hơn. bộ não của tôi cảm thấy như .. ooh vì vậy đó là nơi tên đến từ.
giải thích: (vì nó không thể nhầm lẫn và tôi không muốn quên cách nó hoạt động)
trước tiên bạn phải chọn bố cục dữ liệu tốt nhất cho thử thách này. Tôi đến với
-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
Chúng tôi phải tin rằng điều này là tối ưu trừ khi sẽ có quá nhiều ca (trường hợp bạn phải sắp xếp lại bố cục)
Sau đó, tôi đã sử dụng vòng lặp 4x9x3 để đặt các giá trị bắt đầu cho dòng mới, số, hai chữ cái viết thường và dấu phẩy. (tất cả các mã ascii nhỏ hơn có 4x9 = 36 và hai chữ cái viết thường có 4x9x3 = 108, sau đó tôi đã thêm và trừ một số để có giá trị thực của chúng)
Khi cài đặt sẵn được thực hiện, mã đi vào vòng lặp ngoài cùng có chu kỳ 3 lần. Tôi giải thích nó bằng mã giả.
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'
Khi phần này được thực hiện, tôi chỉ phải in dòng cuối cùng. Nhưng chúng ta có một chữ hoa W phải được tạo ra mà không sử dụng quá nhiều ký tự. Tại thời điểm này, chúng tôi đang ở đây:
Address Value Pointer
-4 0 <--
-3 10
-2 32
-1 50
1 99
2 111
3 44
vì vậy tôi đặt [-3] 4 lần vào [-1] và trừ 3 để lấy 87 (W): >[>>++++<<-]>>---.
sau đó xóa nó [-]
và di chuyển [-2] đến vị trí này [-1] để không gian sẽ gần với các chữ cái viết thường.<[>+<-]
Sau đó nó chỉ in các chữ cái. chữ thường số 1 dành cho phần dưới 97-107 và chữ thường số 2 dành cho khu vực trên.