,[.[<]<+[>>]++++[-<++++++++>],]<[<]<<<++++++++++.>>[[>]>[-<+>]>[-<+>]>>[.>>]<<[<]<<.<<[..<<]<.>>-]>[[>]>[.>>]<<[<<]>.>>[..>>]<<,<[<]<<.>>>]
Попробуйте онлайн!
Вводится через унарный символ +
с метками s ( разрешено постером ). Решил переделать это, так как я думал, что старый был немного длиннее, чем мог бы быть (хотя и этот тоже!).
Старая версия (151 байт):
>--[>+<++++++]<[->+>.<<]++++++++[-<+<++++>>]<++>>[<<.>>-[-<+<<.>>>]<[->+<]>>>+[-<.>>+<]>+[-<+>]<<<]>>[<<<<.>>[-<+<<.>>>]<[->+<]>+>>-[-<.>>+<]>-[-<+>]<]
Попробуйте онлайн!
Принимает ввод в качестве начальной ячейки. Я не мог придумать, как использовать первую половину, чтобы помочь со второй, поэтому для каждого из них есть цикл.
Как это работает:
>--[>+<++++++] Create 43 ('+') two space to the left of n
<[->+>.<<] Print n '+'s while preserving n
++++++++[-<+<++++>>]<++ Create 32 (' ') and 10 ('\n')
Tape: 32 10 0 n 43 t
>>
[ Loop over the first half of the diamond
<<.>> Print a newline
-[-<+<<.>>>] Decrement n and print n spaces
<[->+<] Restore n
>>>+[-<.>>+<] Increment t and print t '+'s
>+[-<+>]<<< Increment t again and restore it
]>>
[ Loop over the second half
<<<<.>> Print a newline
[-<+<<.>>>]< Print n spaces
[->+<]>+ Restore and increment n
>>-[-<.>>+<] Decrement t and print t '+'s
>-[-<+>]< Decrement t again and restore it
]
И просто для удовольствия
+++++++++
>
--[
>+<++
++++]<[
->+>.<<]+
+++++++[-<+
<++++>>]<++>>
[<<.>>-[-<+<<.>
>>]<[->+<]>>>+[-<
.>>+<]>+[-<+>]<<<
]>>[<<<<.>>[-<+
<<.>>>]<[->+<
]>+>>-[-<.>
>+<]>-[-<
+>]<]++
+++++
+++
+
Попробуйте онлайн!
n
в одинарном?