|
|
Autor |
Wiadomość |
Razi
Książe postów
Dołączył: 17 Sie 2006
Posty: 936
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Pon 18:02, 29 Gru 2008 Temat postu: Generator kodu BrainFuck (podstawowy) |
|
|
Kod: | #include <stdio>
#include <iostream>
int abs(int a){
if(a>0) return a;
return (-a);
}
int dzielnik(int a){
int c=a/2, z=0;
int n[c], m=0;
for(int i=1; i<c>2) return n[c+1];
if(m>1) return n[c];
if(a>3) return dzielnik(a-1);
return 0;
}
int adzielnik(int a){
int c=dzielnik(a);
if(c>0)
return a%c;
return 0;
}
int znak(char a){
return (int)(a);
}
//32-spacja
void typ1(char ciag[]){
int a=0;
int i=0;
char bf[255*255];
char *z=&bf[0];
while(ciag[i]>20){
while(a<znak>znak(ciag[i])){ *z='-'; a--; z++;}
*z='.';
z++;
i++;
}
printf("Mózgojeb: %s\n\n", bf);
}
void typ2(char ciag[]){
printf("Mózgojeb: ");
//typ 2: 2 komórki: 0-iteracyjna, 1: znaku
int a=0, b, c=0, d=0;
int i=0;
int dzielnik1, dzielnik2;
/*
a - aktualny znak
b - aktualna wartosc
c - różnica
*/
while(ciag[i]>19){b=a; a=0; //printf("i=%d~~~!~~", i);
while(a<znak>znak(ciag[i])){a--;}
c=abs(a-b);
dzielnik1=dzielnik(c);
if(dzielnik1>0)
dzielnik2=(c-adzielnik(c))/dzielnik1;
c-=dzielnik1*dzielnik2;
d=a-b;
//pisanie kodu
if(dzielnik1>0){
printf(">");
while(dzielnik1>0){
printf("+");
dzielnik1--;
}
printf("[</pocz>0){
if(d>0) printf("+");
else printf("-");
dzielnik2--;
}
//koniec pętli
printf(">-]<while>0){
if(d>0) printf("+");
else printf("-");
c--;
}
//koniec
printf(".");
i++;
}
}
int main(){
char ciag[255];
printf("\n\nPodaj ciag znakow (max 255 znakow): ");
printf(" ::: %d\n", adzielnik(11));
int i=0;
do{
scanf("%c", &ciag[i]);
}while(ciag[i++]>20);
int typ;
do{
printf("Podaj typ konwersji: \n");
printf(" 1. po kolei-jedna komorka\n");
printf(" 2. jedna pętla\n");
printf("wybor: ");
scanf("%i", &typ);
}while(typ<1>2);
switch(typ){
case 1: typ1(ciag); break;
case 2: typ2(ciag); break;
}
return 0;
}
|
Też radzę dodać conio.h i getch(); na koniec.
Robi kod łopatologiczny, oraz używając jednej pętli
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
|
|
|
|
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
|