Интерпретатор brainfuck на c++
Что такое
brainfuck.
Код:
#include "stdafx.h"
#include <iostream>
#include <map>
#include <vector>
using namespace std;
int memory[3000];
int slot = 0;
map <int,int> blocks;
vector <int> opened;
char code[3000];
void block(){
cin>>code;
for (int i=0;i<sizeof(code);i++){
switch(code[i]){
case '[':
opened.push_back(i);
break;
case ']':
blocks[i]=opened.back();
blocks[opened.back()]=i;
opened.pop_back();
break;
}
}
}
int main(){
for (int i=0;i<=3000;i++){
memory[i]=0;
}
block();
for(int i=0;i<sizeof(code);i++){
switch(code[i]){
case '+':
memory[slot]++;
break;
case '>':
slot++;
break;
case '<':
slot--;
break;
case '-':
memory[slot]--;
break;
case '.':
cout<<char(memory[slot]);
break;
case ',':
cin>>memory[slot];
break;
case '[':
if (!memory[slot]){
i = blocks[i];
}
break;
case ']':
if (memory[slot]){
i = blocks[i];
}
break;
}
}
system("pause");
return 0;
}
Exe-файл
Комментарии:
Нету комментариев для вывода...