How dare you fuck the brain
Jump to navigation
Jump to search
How dare you fuck the brain is "brainfuck but it's only purpose to be a golf esolang"-like esolang. Created by User:Ractangle
Syntax
Command | Meaning |
---|---|
I | Increment current cell |
D | Decrement current cell |
^ | Move the cell pointer right |
v | Move the cell pointer left |
) | Go back to the beginning of the line where the ) is currently at if the current cell is not 0
|
P | Print a character from the cell's value |
N | Print the cell's value |
= | Copy the current cell's value to the cell next to it |
+ | Sum the current cell's value and the cell next to it and put the result to the first cell of the operator and empty the cell next to it |
H | Halts program |
/ | Skips a command if the cell is not zero |
↑ | Sets the the claw to the cell's value |
↓ | Sets the cell's value to the claw |
G | Goto statement. Halts if the currently pointing cell is negative |
; | Gets user input and stores the interger into the currently pointing cell |
| | Comment. Ignores all characters until encounters a |
|
Examples
Disan Count
; D^INv)H
Truth-machine
;/N/H^I N)
Erase data in a cell
D)
Hello, world!
II=+=+=+=+=+IIIIIIIIP=DDDP^IIIIPPIIIP^II=+=+=+=+^II=+=+=+DDDDv+P D)v D)II=+=+=+=+P=+^II=+=+=+v+IIIIIIIP=^=v D^Dv)II=+=+=+DDDDDDv+P=IIIP^DDDP^DD=+=+v+P D)II=+=+=+=+IPH
Move data from a cell to an another cell
= |Copy from the other cell before erasing the data from it| D)
Using the claw:
↑ |some value from the other cell| ^^^ |you can move the value basicly anywhere| ↓ |the claw will replace the current cotent of the cell that the pointer is currently pointing at and replcade it with the value from the grabed cell|
A+B Problem
;=;+NH
computational class
HDYFTB is Turing-complete since Brainfuck can be translated into HDYFTB (proof by User:Yayimhere)
[...] -> \n...) yes the \n is a newline + -> I - -> D > -> ^ < -> v . -> P
Interpreter
Xyzzy made a python interpreter of HDYFTB. Modified by User: Ractangle. Try it online if you want to
debug=0;tape=[0]*16;code="""H""" while 1: if(code[cp]=="I"):tape[dp]+=1 elif(code[cp]=="D"):tape[dp]-=1 elif(code[cp]=="^"):dp+=1 elif(code[cp]=="v"):dp-=1 elif(code[cp]=="P"):print(chr(tape[dp]),end="") elif code[cp]=="N":print(tape[dp],end="") elif code[cp]=="=":tape[dp+1]=tape[dp] elif code[cp]=="+":p=tape[dp+1]+tape[dp];tape[dp]=p;tape[dp+1]=0 elif code[cp]==")": if(tape[dp]!=0): while(code[cp]!="\n"):cp-=1 elif code[cp]=="/": if(tape[dp]!=0):cp+=1 elif code[cp]=="↑": if c!="":print("claw aready defined");break c=tape[dp];tape[dp]=0 elif code[cp]=="↓": if c=="":print("claw undefined");break tape[dp]=c;c="" elif code[cp]=="H":break elif code[cp]=="G": if tape[dp]>0:cp=tape[dp] else:break elif code[cp]==";": try:tape[dp]=int(input()) except EOFError:print("No such input",end="");break elif code[cp]=="|": while code[cp]!="|":cp+=1 cp+=1 if debug:print("\n",tape,"\npointing at ",dp+1,"\nbytes:"+str(len(code[1:len(code)-1])),sep="")