Brainfuck Interpreter
Dies ist jetzt kein Spiel aber es hat Sinn. Dieses Programm heißt Brainfuck und ist eine esoterische Programmiersprache.Es gibt nur folgende Befehle:
+ --> Inkrementiert das aktuelle Register
- --> Dekrementiert es
> --> Register + 1
< --> Register - 1
[ --> Schleifenanfang
] --> Schleifenende
. --> Ausgabe des Register
, --> Eingabe
Das wars.
Als Beispiel ist hier eine Schleife, die runterzählt:
,[-.]
Wenn ich eine Zelle verschieben will:
+++++[>+<-]
Eine Zelle auf null setzen:
[-]
ist besonders einfach.
Man kann selber ein wenig ausprobieren.
Hier der Code in schlechtem C++:
// Brainfuck 1.1
#include <iostream>
#include <string.h>
using namespace std;
int i=0;
int pos=0;
int r[100];
int p=0;
char x[100];
int var=0;
int main() {
cout << " *** Brainfuck *** " << endl;
cout << endl;
while(1) {
cout << "OK" << endl;
cin >> x;
for(i=0;i<=strlen(x);i++)
{
switch(x[i]) {
case '+':
r[p]=r[p]+1;
break;
case '-':
r[p]=r[p]-1;
break;
case '<':
p=p-1;
break;
case '>':
p=p+1;
break;
case '.':
cout << r[p] << endl;
break;
case ',':
cin >> var;
r[p]=var;
break;
case '[':
pos=i;
break;
case ']':
if(r[p] != 0) {
i=pos;
}
break;
}
}
}
}