Forum Forum ZKP Strona Główna

Interpreter rozszerzonego BrainFucka

 
Napisz nowy temat   Odpowiedz do tematu    Forum Forum ZKP Strona Główna -> Ciekawe źródła i kody
Autor Wiadomość
Razi
Książe postów
Książe postów



Dołączył: 17 Sie 2006
Posty: 936
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Pon 18:00, 29 Gru 2008    Temat postu: Interpreter rozszerzonego BrainFucka

Kod:
#include <stdio>
int limit=255;
int chr=255;
char tab[255][255]; //wartości
char x=0, y=0; //wskaźniki
char bufor=0;
char kod[3000];
int dl=0;
bool cont;


int interpretuj(int i){
   int s=i;
   cont=false;
   while(i<dl){ //printf("i:%d |%c| \n", i, kod[i]);
      cont=false;
      switch(kod[i]){
         case '+': tab[x][y]++; break;
         case '-': tab[x][y]--; break;
         case '<': x--; break;
         case '>': x++; break;
         case '^': y++; break;
         case 'v': y--; break;
         case '*': tab[x][y]=bufor; break;
         case '/': bufor=tab[x][y]; break;
         case '.': printf("%c", tab[x][y]); break;
         case ',': scanf("%c", &tab[x][y]); break;
         case '[': i=interpretuj(i+1); break;
         case ']': if(tab[x][y]==0) return i; else {i=s; cont=true;} break;
         default: break;
         }
      if(cont==true) continue;
      i++;
      } return dl;
}


int main(){
for(int i=0; i<limit; i++) for(int j=0; j<limit>20)/pobranie kodu
interpretuj(0);

return 0;
}


Do samodzielnej kompilacji:p Możecie dodać conio.h i getch();, żeby konsoli nie zamykał.

Środowiskiem rozszerzonego brainfucka jest tablica dwuwymiarowa 255x255. porusza się po niej znakami <,>,v, oraz ^. "kropka" wypisuje znak, "przecinek" pobiera (po wpisaniu całego kodu!), +/- - dodawanie/odejmowanie, [,] - pętla.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:    Zobacz poprzedni temat : Zobacz następny temat  
Napisz nowy temat   Odpowiedz do tematu    Forum Forum ZKP Strona Główna -> Ciekawe źródła i kody Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Regulamin