C++

Интерпретатор 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-файл
Теги:
c++, brainfuck
Добавлено: 11 Июня 2014 05:09:51 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...