Created
November 19, 2021 09:57
-
-
Save kangalio/74cc4cf204b1043dfb76b3bf61bd6f6f to your computer and use it in GitHub Desktop.
Brainfuck implementation of a variable size letter diamond shape
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
We use cell 1 and 2 as temp cells for copying or building values | |
+++++++++++++++++++++++++++ 4 to cell 0 | |
>>+++++++++[>+++++<-]>+ 46 (ASCII dot) to cell 3; cell 2 temp; =3 | |
<++++++++[>>++++++++<<-]>>+ 97 (ASCII 'A') to cell 4; cell 2 temp; =4 | |
>++++++++++ 10 (ASCII newline) to cell 5 | |
<<<<<[>+>>.<<<-]>[<+>-] print cell 3 {cell 0} times; cell 1 temp | |
>>>. print cell 4 | |
<<<<[>+>>.<<<-]>[<+>-] print cell 3 {cell 0} times; cell 1 temp | |
>>>>. print cell 5 | |
<<<<<[>+>+<<-]>>[<<+>>-] copy cell 0 to cell 1; cell 2 temp | |
>>>>+ 1 to cell 6; it counts number of inner dots | |
<<<<<[- iterate over {cell 1} minus 1; {cell 0} minus 2; etc; 0 | |
[>+>.<<-]>[<+>-] print dot (cell 3) {cell 1} times; cell 2 temp | |
>>+. increment letter (cell 4) and print | |
>>[<<<<+>.>>>-]<<<<[>>>>+<<<<-] print dot (cell 3) {cell 6} times; cell 2 temp | |
>>>>++ add 2 to cell 6 | |
<<. print letter (cell 4) again | |
<<<[>+>.<<-]>[<+>-] print dot (cell 3) {cell 1} times; cell 2 temp | |
>>>. print newline (cell 5) | |
<<<<] loop end (cell 1) | |
+ 1 to cell 1; it counts number of outer dots | |
>>>>>---[- iterate over {cell 6} minus 2; {cell 6} minus 4; etc; 1 | |
<<<<<[>+>.<<-]>[<+>-] print dot (cell 3) {cell 1} times; cell 2 temp | |
>>-. decrement letter (cell 4) and print | |
>>[<<<<+>.>>>-]<<<<[>>>>+<<<<-] print dot (cell 3) {cell 6} times; cell 2 temp | |
>>. print letter (cell 4) again | |
<<<[>+>.<<-]>[<+>-] print dot (cell 3) {cell 1} times; cell 2 temp | |
>>>. print newline (cell 5) | |
<<<<+ increment cell 1 | |
>>>>>-] loop end (cell 6) | |
<<- decrement letter (cell 4) to get back to start letter | |
<<<<[>>>.<<<-] print cell 3 {cell 0} times; cell 0 consumed | |
>>>>. print cell 4 | |
<<<[>>.<<-] print cell 3 {cell 1} times; cell 1 consumed |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment