/*混合C++、JS、python、Lisp、汇编1种语言,5种语法*/main{ //C++ vector v; v.push(2); putsl(v.size()); if(v.count()==1) { putsl("abc"); } //JS var a=function(x){ return x*2; } putsl(a(3)); a={90,91}; putsl(a[1]); //python b=2 if b==2 putsl 1 putsl 2 elif b==3 putsl 99 //Lisp [= b 3] [rf printl b] [= b [+ 1 3]] [rf printl b] //汇编 mov b,4 add b,5 putsl(b)}
输出是:
4abc69112349RPP已经成功从C++内核升级到了lisp内核,欢迎下载试用。
光速编译,无限可能,尽在RPP。(音up)
/*控制台贪食蛇*/int g_std_outrbuf g_arrint g_next=10int g_foodvoid main(){ g_std_out=stdcall("GetStdHandle",-11) g_arr.push(105) CONSOLE_CURSOR_INFO cur_info cur_info.dwSize=1 cur_info.bVisible=0 stdcall("SetConsoleCursorInfo",g_std_out,&cur_info) rf.cmd("mode con cols=66 lines=35") init rf.srand start=rf.tick food for key if rf.tick-start<100 continue start=rf.tick ifn check return g_arr.push_front(g_arr[0]+g_next) if g_food!=g_arr[0] g_arr.pop else food update}void gotoxy(int x,int y){ COORD pos pos.x=x pos.y=y int temp mov temp,pos stdcall("SetConsoleCursorPosition",g_std_out,temp)}void update(){ for i=0 to 199 gotoxy(i%10+1,i/10+1) if g_arr.exist(i) puts("O") elif i==g_food puts("$") else puts(" ")}void init(){ for i=0 to 11 for j=0 to 21 if i==0||i==11||j==0||j==21 gotoxy(i,j) puts("#")}void key(){ if stdcall("GetAsyncKeyState",0x26) temp=-10 elif stdcall("GetAsyncKeyState",0x28) temp=10 elif stdcall("GetAsyncKeyState",0x25) temp=-1 elif stdcall("GetAsyncKeyState",0x27) temp=1 else return if g_arr.count<2||g_arr.get(1)!=g_arr.get(0)+temp g_next=temp}int check(){ temp=g_arr[0]+g_next if temp<0||temp>199||int.abs(temp%10-g_arr[0]%10)>1||g_arr.exist(temp) stdcall("MessageBoxA",0,('over len '+g_arr.count).cstr,"",0) return false return true}void food(){ g_food=rf.rand()%200 if g_arr.exist(g_food) food}struct CONSOLE_CURSOR_INFO{ int dwSize bool bVisible}struct COORD{ ushort x ushort y}
以下是一个彩色版本号:
/*彩色版控制台贪食蛇*/int g_std_outrbuf g_arrint g_nextint g_foodvoid main(){begin: init start=rf.tick for key if rf.tick-start<100 continue start=rf.tick ifn check goto begin g_arr.push_front(g_arr[0]+g_next) if g_food!=g_arr[0] g_arr.pop else food update}void update(){ for i=0 to 199 gotoxy(i%10*2,i/10) if g_arr.exist(i) out("■") elif i==g_food out("★") else puts(" ")}void init(){ rf.srand g_std_out=stdcall("GetStdHandle",-11) g_next=10 g_arr.clear g_arr.push(105) food CONSOLE_CURSOR_INFO cur_info cur_info.dwSize=1 cur_info.bVisible=0 stdcall("SetConsoleCursorInfo",g_std_out,&cur_info) rf.cmd("mode con cols=20 lines=22")//保留一行留给输入法 stdcall("SetConsoleTextAttribute",g_std_out,0x0a) gotoxy(0,20) puts(" ******************") }void key(){ if stdcall("GetAsyncKeyState",0x26) temp=-10 elif stdcall("GetAsyncKeyState",0x28) temp=10 elif stdcall("GetAsyncKeyState",0x25) temp=-1 elif stdcall("GetAsyncKeyState",0x27) temp=1 else return if g_arr.count<2||g_arr.get(1)!=g_arr.get(0)+temp g_next=temp}bool check(){ temp=g_arr[0]+g_next if temp<0||temp>199||int.abs(temp%10-g_arr[0]%10)>1||g_arr.exist(temp) stdcall("MessageBoxA",0,('over len '+g_arr.count).cstr,"",0) return false return true}void food(){ g_food=rf.rand()%200 if g_arr.exist(g_food) food}void out(char* s){ puts(rcode.utf8_to_gbk(s))}void gotoxy(int x,int y){ COORD pos pos.x=x pos.y=y stdcall("SetConsoleCursorPosition",g_std_out,pos)}struct CONSOLE_CURSOR_INFO{ int dwSize bool bVisible}struct COORD{ ushort x ushort y}