Broken Gdy Brainfuck
Jump to navigation
Jump to search
Broken-Gdy-Brainfuck is a derivate of Brainfuck but with ABCDEFG. This is Gdy_Brainfuck with the ability to generate random errors and force termination.
Commands
Brainfuck | GdyBrainfuck |
---|---|
+
|
a |
-
|
b |
.
|
d(text) e(number) |
,
|
None |
<
|
A |
>
|
B |
None
|
c |
None
|
f |
None
|
F |
None
|
g |
None
|
G |
[
|
None |
]
|
None |
None
|
h |
None
|
i |
None
|
I |
Examples
Hello, World!
gbf2 cHceclclcoc,c cWcocrclcdc!c dC
1+1=2
gbf2 c1c+c1c=dC aaAaafAe
hey
gbf2 cHcecyc,cWchcactc cac cycocucrc cncacmcec?c dC hcNcicccec ctcoc cmcecectc cycocuc,c dD
Interpreter
Interpreter in C++.
#include <cstdio> #include <fstream> #include <iostream> #include <string> #include <vector> #include <stdio.h> #include <windows.h> int main(int argc, char **argv) { FILE* file_wr; int errpst=10000; std::vector<char> run_list; std::vector<char> run_list_count; int power = 0; int int_cp = 0; std::vector<float> fl_p; std::vector<char> str_p; std::string str2_p; for (int i = 0; i < 200; i++) { fl_p.push_back(0); } std::ifstream file(argv[1]); int count = 0; if (file.is_open()) { char getstr; while (file.get(getstr)) { run_list.push_back(getstr); count++; } file.close(); for (int i = 0; i < count; i++) { if(rand()%errpst<errpst/270){ system("cls"); system("color 47"); for(int j = 0; j < 1000; j++){ std::cout << "<?>"; } system("color 07"); system("cls"); break; } errpst-=10; if(run_list[i]=='g' && run_list[i+1]=='b' && run_list[i+2] =='f' && run_list[i+3] =='2' && run_list[i+4] =='\n' && power == 0){ power = 1; } if(power == 1){ if (run_list[i]=='a'){ fl_p[int_cp]++; } else if (run_list[i]=='b'){ fl_p[int_cp]--; } else if (run_list[i]=='A'){ int_cp++; } else if (run_list[i]=='B'){ int_cp--; } else if (run_list[i]=='c'){ str_p.push_back(run_list[i+1]); i++; } else if (run_list[i]=='d'){ for (char c : str_p) { std::cout << c; } } else if (run_list[i]=='D'){ std::cout << str2_p; } else if (run_list[i]=='e'){ std::cout << fl_p[int_cp]; } else if (run_list[i] == 'C'){ str_p.clear(); str2_p.clear(); } else if (run_list[i] == 'f'){ fl_p[int_cp+1]=fl_p[int_cp-1]+fl_p[int_cp]; } else if (run_list[i] == 'F'){ fl_p[int_cp+1]=fl_p[int_cp-1]*fl_p[int_cp]; } else if (run_list[i] == 'g'){ fl_p[int_cp+1]=fl_p[int_cp-1]-fl_p[int_cp]; } else if (run_list[i] == 'h'){ std::getline(std::cin, str2_p); } else if (run_list[i] == 'i'){ std::string str2_p(str_p.begin(), str_p.end()); } else if (run_list[i] == 'I'){ std::vector<char> str_p(str2_p.begin(), str2_p.end()); } } } } else { std::cout << "[ERR]\tFileOpen" << std::endl; } return 0; }