mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
Brainfuck samples
This commit is contained in:
committed by
Garen Torikian
parent
fecf0cc137
commit
05f73df064
11
samples/Brainfuck/fib100.bf
Normal file
11
samples/Brainfuck/fib100.bf
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
+++++++++++
|
||||||
|
>+>>>>++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
>++++++++++++++++++++++++++++++++<<<<<<[>[>>>>>>+>
|
||||||
|
+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>>-]<[>++++++++++[-
|
||||||
|
<-[>>+>+<<<-]>>>[<<<+>>>-]+<[>[-]<[-]]>[<<[>>>+<<<
|
||||||
|
-]>>[-]]<<]>>>[>>+>+<<<-]>>>[<<<+>>>-]+<[>[-]<[-]]
|
||||||
|
>[<<+>>[-]]<<<<<<<]>>>>>[+++++++++++++++++++++++++
|
||||||
|
+++++++++++++++++++++++.[-]]++++++++++<[->-<]>++++
|
||||||
|
++++++++++++++++++++++++++++++++++++++++++++.[-]<<
|
||||||
|
<<<<<<<<<<[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<-[>>.>.<<<
|
||||||
|
[-]]<<[>>+>+<<<-]>>>[<<<+>>>-]<<[<+>-]>[<+>-]<<<-]
|
||||||
4
samples/Brainfuck/hello.bf
Normal file
4
samples/Brainfuck/hello.bf
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
// More complex version of hello world
|
||||||
|
|
||||||
|
>++++++++[<+++++++++>-]<.>>+>+>++>[-]+<[>[->+<<++++>]<<]>.+++++++..+++.>
|
||||||
|
>+++++++.<<<[[-]<[-]>]<+++++++++++++++.>>.+++.------.--------.>>+.>++++.
|
||||||
3
samples/Brainfuck/helloworld.bf
Normal file
3
samples/Brainfuck/helloworld.bf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
// Hello World
|
||||||
|
|
||||||
|
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
|
||||||
30
samples/Brainfuck/rot13.bf
Normal file
30
samples/Brainfuck/rot13.bf
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# ROT13 cipher
|
||||||
|
|
||||||
|
-,+[ Read first character and start outer character reading loop
|
||||||
|
-[ Skip forward if character is 0
|
||||||
|
>>++++[>++++++++<-] Set up divisor (32) for division loop
|
||||||
|
(MEMORY LAYOUT: dividend copy remainder divisor quotient zero zero)
|
||||||
|
<+<-[ Set up dividend (x minus 1) and enter division loop
|
||||||
|
>+>+>-[>>>] Increase copy and remainder / reduce divisor / Normal case: skip forward
|
||||||
|
<[[>+<-]>>+>] Special case: move remainder back to divisor and increase quotient
|
||||||
|
<<<<<- Decrement dividend
|
||||||
|
] End division loop
|
||||||
|
]>>>[-]+ End skip loop; zero former divisor and reuse space for a flag
|
||||||
|
>--[-[<->+++[-]]]<[ Zero that flag unless quotient was 2 or 3; zero quotient; check flag
|
||||||
|
++++++++++++<[ If flag then set up divisor (13) for second division loop
|
||||||
|
(MEMORY LAYOUT: zero copy dividend divisor remainder quotient zero zero)
|
||||||
|
>-[>+>>] Reduce divisor; Normal case: increase remainder
|
||||||
|
>[+[<+>-]>+>>] Special case: increase remainder / move it back to divisor / increase quotient
|
||||||
|
<<<<<- Decrease dividend
|
||||||
|
] End division loop
|
||||||
|
>>[<+>-] Add remainder back to divisor to get a useful 13
|
||||||
|
>[ Skip forward if quotient was 0
|
||||||
|
-[ Decrement quotient and skip forward if quotient was 1
|
||||||
|
-<<[-]>> Zero quotient and divisor if quotient was 2
|
||||||
|
]<<[<<->>-]>> Zero divisor and subtract 13 from copy if quotient was 1
|
||||||
|
]<<[<<+>>-] Zero divisor and add 13 to copy if quotient was 0
|
||||||
|
] End outer skip loop (jump to here if ((character minus 1)/32) was not 2 or 3)
|
||||||
|
<[-] Clear remainder from first division if second division was skipped
|
||||||
|
<.[-] Output ROT13ed character from copy and clear it
|
||||||
|
<-,+ Read next character
|
||||||
|
] End character reading loop
|
||||||
Reference in New Issue
Block a user