braincraft

From Esolang
Jump to navigation Jump to search

braincraft is brainfuck but updates happen like minecraft.

updates

1.0 - barebones

the additions for 1.0 are:

+ increments the cell under pointer by 1
- decrements the cell under pointer by 1
x squares the cell under pointer
[ jump to ] if the cell under pointer is 0
] jump to [ if the cell under pointer is greater than 0
{ jump to } if the cell under pointer is greater than 0
} jump to { if the cell under pointer is 0
< move the pointer backwards 1 cell
> move the pointer forwards 1 cell
c move the pointer to cell 0
i move the pointer to cell input
. output the cell under pointer as ASCII
, input ASCII to the cell under pointer
& input numbers to the cell under pointer
/ output numbers to the cell under pointer
( add the cell to the left of the cell under pointer to the cell under pointer
) add the cell to the right of the cell under pointer to the cell under pointer
SPECIAL RULES:
cells wrap over 256->0

1.1 - string update

the additions for 1.1 are:

" string mode toggle
~ string mode print

in string mode, things are executed like this:

the first letter in string mode is put into the cell at pointer, then the cell at pointer is moved forwards 1 cell and the next letter is put, cycle repeats until end of string mode.

you can put ~ to print the string in its entirety and move the pointer to the start of when string mode was activated.

1.2 - wormhole update

the additions for 1.2 are:

← move the wormhole pointer backward 1 wormhole
l move the wormhole pointer to wormhole 0
· jump into wormhole at pointer
→ move the wormhole pointer forward 1 wormhole
ↄ move the wormhole pointer forward 1 wormhole if the cell at pointer is greater then 0
* exit if wormhole inside of is wormhole at wormhole pointer
w move the wormhole pointer to wormhole with the value of the cell at pointer
p move the wormhole pointer to wormhole with the value of the position of the pointer

all of these commands work while inside of a wormhole

1.3 - parallel dimensions update

2 enable two dimensionality
| path
} path split
\ path end downwards/begin downwards
/ path end upwards/begin upwards
z end a dimension
y end a dimension if cell at pointer is 0

old / gets moved to = in two dimensionality mode

at the end of the program, "o" marks the correct path

for example:

+++2++\+++++[>++++++++++<-]>.
      }
      \++++++[>+++++++++<-]>.o

prints c, while

+++2++\+++++[>++++++++++<-]>.o
      }
      \++++++[>+++++++++<-]>.

prints d. if no "o" is there, the toppest path is automatically picked.

1.4 - time travel update

t mark point in time
T travel to most recent marked point in time
b delete most recent marked point in time
F travel to most recent marked point in time if cell at pointer is greater than 0

1.5 - optimization update 1

' "~
n toggle number mode
A adds 65 to cell under pointer
a adds 97 to cell under pointer
f t with F at end of program. really good for short programs

number mode puts the number into the cell at pointer

programs

note: some programs may not be displayed for earlier versions (i.e. 1.0-1.4)

cats

number

1.0-1.3
&[/&]
1.4
t&/F
1.5-currnet
f&/

ASCII

1.0-1.3
,[.,]
1.4
t,.F
1.5-current
f,.

hello world

1.0

+[-->-[>>+>-----<<]<--<---]>-.>>>+.>>..+++[.>]<<<<.+++.------.<<-.>>>>+.

1.1-1.4

"Hello, world!"~

1.5-current

"Hello, world'

kiwiscript

1.1-1.4

"kiwi"~

1.5-current

"kiwi'

truth machine

1.0-1.3

&/[/]

1.4

&t/F

1.5-current

&f/

ASCII loop

1.0-1.3

+[.+]

1.4

t+.F

1.5-current

f+.