BigBrain
Jump to navigation
Jump to search
BigBrain is a brainfuck remake by user k written in Lua. (Github Page)
This is not an extension, as a lot of stuff is different.
Differences
Every byte is set to one at the beginning. Bytes can go as high or as low as you need There are 2 lanes : a processing lane and a graphics lane (both work the same, but those are their intended purposes and official names.)
All the different Commands BigBrain Has (Bytes = Cells) :
Symbol | Description | Category |
---|---|---|
+ | Sets the currently selected byte's value to the sum of the next byte's value and itself. | Operations |
- | Sets the currently selected byte's value to the difference between itself and the next byte's value. | Operations |
* | Sets the currently selected byte's value to the product of the next byte's value and itself. | Operations |
/ | Sets the currently selected byte's value to the quotient of the next byte's value and itself. | Operations |
= | Sets the currently selected byte's value to the next byte's value. | Operations |
^ | Raises the current byte's value by the next byte's value. (As in current byte to the power of the next byte) | Operations |
: | Sets the currently selected byte's value to the root of itself by the next byte's value. | Operations |
$ | Sets the next byte's value to 1. | Operations |
_ | Sets the currently selected byte's value to itself concatinated with the next byte. | Operations |
! | Swaps the current byte's value and the byte to the right's value | Movement |
? | Swaps the current byte's value and the byte to the left's value | Movement |
> | Moves the pointer 1 byte to the right | Movement |
< | Moves the pointer 1 byte to the left | Movement |
{ | If the current byte's value is 1, go to the corresponding } | Flow Control |
} | If the current byte's value is not 1, go to its corresponding { | Flow Control |
[ | If the current byte's value is equal to zero, go to the corresponding ] | Flow Control |
] | If the current byte's value is not equal to zero, go to its corresponding [ | Flow Control |
( | If the current byte's value is equal to the next byte's value, go to its corresponding ) | Flow Control |
) | If the current byte's value is not equal to the next byte's value, go to its corresponding ( | Flow Control |
~ | Any condition after this will be inverted, this effect can be reversed by adding another ~ symbol. | Miscellaneous |
& | Sets the pointer back to the first byte. | Miscellaneous |
; | Gets an input but instead of getting its ascii code, it gets it as a number. Ex. "1" is inputted, the current byte is set to 1 | Miscellaneous |
' | Prints the number stored in the current byte. | Miscellaneous |
. | Prints the ascii character whose ascii value corresponds to the number in the current byte. | Miscellaneous |
, | Gets an input's ascii code. | Miscellaneous |
# | Sets the current byte's value to its index. | Miscellaneous |
" | Switches which tape the pointer is currently on. | Miscellaneous |
% | Sets the current cell's value to the cell with the same index on the opposite tape. | Miscellaneous |
Examples
"Hello, World!" printed using a simple algorithm :
++++++>+<_$.!$>-<_$_$.!$>-<_$>+++++++<_$..!$_$_$.!$+++>+++<_$.!$++>+<_$.!$_$>++++++++<_$.!$_$_$.!$_$>+++<_$.!$>-<_$>+++++++<_$.!$>-<_$>-<_$.!$++>++<_$.!$
"Hello, world!" printed using a human brain :
++++++>+<_.!$++++++++_.+++++++..+++.!$+!=*!=_.---.*--$-.>+<----.+$+.>+<---.----.!$!*****$+.
Cat Program :
+(,.)
Move Value :
!>! this moves the current value two cells to the right while keeping the two other values intact.