zoukankan      html  css  js  c++  java
  • 5种语言混合编程:C++、JS、python、Lisp、汇编

    /*
    混合C++、JS、python、Lisp、汇编
    1种语言,5种语法
    */
    
    main
    {
    	//C++
    	vector<int> 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)
    }

    输出是:

    4
    abc
    6
    91
    1
    2
    3
    4
    9

    RPP已经成功从C++内核升级到了lisp内核,欢迎下载试用。

    光速编译,无限可能,尽在RPP。(音up)

    /*
    控制台贪食蛇
    */
    
    int g_std_out
    rbuf<int> g_arr
    int g_next=10
    int g_food
    
    void 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_out
    rbuf<int> g_arr
    int g_next
    int g_food
    
    void 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
    }


  • 相关阅读:
    AVWS安装
    Windows 组策略运用
    Windows系统盘清理
    windows计划任务遇到的坑
    mstsc 复制粘贴,遇到的坑~以及输入法无法切换问题
    pyinstaller打包后运行报错-No module named 'pymssql._mssql'
    Word英文如何优雅对齐显示
    键盘除了fn键都失效了,键盘失灵怎么办?
    Ignatius's puzzle
    Train Problem II
  • 原文地址:https://www.cnblogs.com/llguanli/p/7000625.html
Copyright © 2011-2022 走看看