is it ok if i submit 2 things
yes
@coder_07 @cookieclickerer33 the challenge is coming to a close remember to submit your projects on October 15
Yeah I didn’t have a lot of time to work on it unfortunately and when I did I had other stuff to work on as well
Not sure if it’s Gonna get finished
that’s ok just submit what you have
Okay is it alright if I remake brainfudge (cannot say real name due to yk) instead of snap?
sure the goal was never to recreate snap it was to code anything that you could code with
I said that at the start
Well here it is!
https://snap.berkeley.edu/snap/snap.html#present:Username=cookieclickerer33&ProjectName=Brainfudge
Current indexed byte means the value inside the place in memory that is currently being written to
Indexed byte is the place in memory that is being written to
I added a few new functions to make up for the fact that I couldn’t quite figure out coma so I made it set the indexed byte at the current indexed byte to the indexed byte. This unfortunately means a lot of already existing programs don’t work in this
For example
If c3 is equal to 1 and , is ran then c1 is set to 3
New functions :
( and )
These work like [ and ] but the opposite conditions
( will only run if the value is NOT zero
And ) will only run if the value is zero
? Sets the indexed byte to the value in the current indexed byte
For example if c3 is equal to 1 then it sets the byte that will be edited by the next instruction to c1
! Sets the current indexed byte to the current functions position in the line
For example if we are on instruction 5 and c3 is being written to it would set c3 to 5
{ and }
Still being added..
Works the same as ( and ) but uses the pointer as the conditional instead of the stored byte
This isn’t warped so you can do functions that have either an omega run ammount that is rediculously high or functions that have an infinite length
By default you have 100 memory cells instead of 30000 cells but you can increase this to whatever value you want
I might rewrite this in the future to use the streams library so you can have an infinite* number of memory cells
I have
I'm not sure if it counts, but you can program with it.
yes
also I know what “brainfudge” is
So uh, the blocks did that glitch where they get really long but for some reason out it spat this when I removed the inputs???
if imported it’s just a normal item of list block
I have less than zero clue as to how
maybe it is so close to a normal list block that snap just thinks it is
I added an update. Here’s the full function list and what they do
Byte/memory cell means the value inside the current Byte being written to
Memory\index means the number the byte is, for example c3 would be the third byte index
Pointer means the current instruction being run
(“the”s are so it doesn’t mess up the formatting)
The + increments the byte by 1
The - subtracts 1 from the byte
The > moves the index right by 1
The < moves the index left by 1
The . Makes the sprite say the byte
The [ sees if the byte is 0, if it is move the pointer to the next ]
The ] sees if the byte isn’t zero, if it isnt, it moves it to the nearest [
The , sets the byte indexed at the value of the current byte to the current position of the index
New functionality:
The ( and ) are like [ and ] but with the rules reversed, if the value is not zero and ( is run it will jump to ). If ) is run and the value is zero it will jump to (
The ? Makes the index pointer go to the indexed byte at the current byte
So if we were at c3 and c3’s value as set to 10 and ? Is run we would change the byte being written to to be c10
The ! Sets the byte to the position of the instruction pointer
The ^ sets the byte index to the value of the current byte like ? But when it jumps it sets the byte it’s going to to the index of the previous byte index
For example if c3 was set to 10 and ^ is run, the new byte being edited would be c10 and c10 would be set to 3 because that’s the byte we jumped from
The { and } work like [ and ] except they run what’s inside until the memory index is equal to 1
Pressing space runs the program
Pressing c clears the program
Pressing e let’s you load code
And pressing Q exports the code
Text engine controls are
Down arrow to go down a line or make a new line if you are at the bottom
Up arrow to go up a line
Backspace to delete a letter
Enter makes a new line below the current line regardless of where you are
If you are on mobile use the up and down blocks to move the line up and down, and use the “mobile keyboard” block by clicking the text input, then clicking off of the text input without closing the keyboard
If you have any ideas it would be really really easy to add new features so just give ‘‘em to me!
maybe you could add the ability to convert your brainfudge to JavaScript