欢迎来到天天文库
浏览记录
ID:39890940
大小:41.00 KB
页数:9页
时间:2019-07-14
《C语言编程2048小游戏》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、/*ByReason*/#include#include#include#include#include#include//为了读取方向键#includeusingnamespacestd;//srand((unsigned)time(NULL));//随机数种子不能用在这里intpane[4][4];//棋盘intN=1;//2的n次方voidshowpane()//显示
2、棋盘{cout<3、-----------------------4、"<5、"<6、<7、"<8、-----------------------9、"<10、4;intq=rand()%4;pane[m][n]=pane[p][q]=2;showpane();}intif2n(intx)//判断x是否是2的n次方{intflag=0;for(intn=1;n<=11;n++){if(x==pow(2,n)){flag=1;if(n>N)N=n;returnflag;}}returnflag;}intupmove()//上移{intflag=0;for(intj=0;j<=3;j++)for(inti=0;i<3;i++){if(if2n(pane[i][j11、]+pane[i+1][j])==1){pane[i][j]=pane[i][j]+pane[i+1][j];pane[i+1][j]=0;flag=1;}}returnflag;}intdownmove()//下移{intflag=0;for(intj=0;j<=3;j++)for(inti=3;i>0;i--){if(if2n(pane[i][j]+pane[i-1][j])==1){pane[i][j]=pane[i][j]+pane[i-1][j];pane[i-1][j]=0;flag=1;12、}}returnflag;}intleftmove()//左移{intflag=0;for(inti=0;i<=3;i++)for(intj=0;j<3;j++){if(if2n(pane[i][j]+pane[i][j+1])==1){pane[i][j]=pane[i][j]+pane[i][j+1];pane[i][j+1]=0;flag=1;}}returnflag;}intrightmove()//右移{intflag=0;for(inti=0;i<=3;i++)for(intj=3;j>013、;j--){if(if2n(pane[i][j]+pane[i][j-1])==1){pane[i][j]=pane[i][j]+pane[i][j-1];pane[i][j-1]=0;flag=1;}}returnflag;}inttestup()//能否上移测试{intflag=0;for(intj=0;j<=3;j++)for(inti=0;i<3;i++){if(if2n(pane[i][j]+pane[i+1][j])==1){flag=1;}}returnflag;}inttestdown14、()//测试能否下移{intflag=0;for(intj=0;j<=3;j++)for(inti=3;i>0;i--){if(if2n(pane[i][j]+pane[i-1][j])==1){flag=1;}}returnflag;}inttestleft()//测试能否左移{intflag=0;for(inti=0;i<=3;i++)for(intj=0;j<3;j++){if(if2n(pane[i][j]+pane[i][j+1])==1){f
3、-----------------------
4、"<5、"<6、<7、"<8、-----------------------9、"<10、4;intq=rand()%4;pane[m][n]=pane[p][q]=2;showpane();}intif2n(intx)//判断x是否是2的n次方{intflag=0;for(intn=1;n<=11;n++){if(x==pow(2,n)){flag=1;if(n>N)N=n;returnflag;}}returnflag;}intupmove()//上移{intflag=0;for(intj=0;j<=3;j++)for(inti=0;i<3;i++){if(if2n(pane[i][j11、]+pane[i+1][j])==1){pane[i][j]=pane[i][j]+pane[i+1][j];pane[i+1][j]=0;flag=1;}}returnflag;}intdownmove()//下移{intflag=0;for(intj=0;j<=3;j++)for(inti=3;i>0;i--){if(if2n(pane[i][j]+pane[i-1][j])==1){pane[i][j]=pane[i][j]+pane[i-1][j];pane[i-1][j]=0;flag=1;12、}}returnflag;}intleftmove()//左移{intflag=0;for(inti=0;i<=3;i++)for(intj=0;j<3;j++){if(if2n(pane[i][j]+pane[i][j+1])==1){pane[i][j]=pane[i][j]+pane[i][j+1];pane[i][j+1]=0;flag=1;}}returnflag;}intrightmove()//右移{intflag=0;for(inti=0;i<=3;i++)for(intj=3;j>013、;j--){if(if2n(pane[i][j]+pane[i][j-1])==1){pane[i][j]=pane[i][j]+pane[i][j-1];pane[i][j-1]=0;flag=1;}}returnflag;}inttestup()//能否上移测试{intflag=0;for(intj=0;j<=3;j++)for(inti=0;i<3;i++){if(if2n(pane[i][j]+pane[i+1][j])==1){flag=1;}}returnflag;}inttestdown14、()//测试能否下移{intflag=0;for(intj=0;j<=3;j++)for(inti=3;i>0;i--){if(if2n(pane[i][j]+pane[i-1][j])==1){flag=1;}}returnflag;}inttestleft()//测试能否左移{intflag=0;for(inti=0;i<=3;i++)for(intj=0;j<3;j++){if(if2n(pane[i][j]+pane[i][j+1])==1){f
5、"<6、<7、"<8、-----------------------9、"<10、4;intq=rand()%4;pane[m][n]=pane[p][q]=2;showpane();}intif2n(intx)//判断x是否是2的n次方{intflag=0;for(intn=1;n<=11;n++){if(x==pow(2,n)){flag=1;if(n>N)N=n;returnflag;}}returnflag;}intupmove()//上移{intflag=0;for(intj=0;j<=3;j++)for(inti=0;i<3;i++){if(if2n(pane[i][j11、]+pane[i+1][j])==1){pane[i][j]=pane[i][j]+pane[i+1][j];pane[i+1][j]=0;flag=1;}}returnflag;}intdownmove()//下移{intflag=0;for(intj=0;j<=3;j++)for(inti=3;i>0;i--){if(if2n(pane[i][j]+pane[i-1][j])==1){pane[i][j]=pane[i][j]+pane[i-1][j];pane[i-1][j]=0;flag=1;12、}}returnflag;}intleftmove()//左移{intflag=0;for(inti=0;i<=3;i++)for(intj=0;j<3;j++){if(if2n(pane[i][j]+pane[i][j+1])==1){pane[i][j]=pane[i][j]+pane[i][j+1];pane[i][j+1]=0;flag=1;}}returnflag;}intrightmove()//右移{intflag=0;for(inti=0;i<=3;i++)for(intj=3;j>013、;j--){if(if2n(pane[i][j]+pane[i][j-1])==1){pane[i][j]=pane[i][j]+pane[i][j-1];pane[i][j-1]=0;flag=1;}}returnflag;}inttestup()//能否上移测试{intflag=0;for(intj=0;j<=3;j++)for(inti=0;i<3;i++){if(if2n(pane[i][j]+pane[i+1][j])==1){flag=1;}}returnflag;}inttestdown14、()//测试能否下移{intflag=0;for(intj=0;j<=3;j++)for(inti=3;i>0;i--){if(if2n(pane[i][j]+pane[i-1][j])==1){flag=1;}}returnflag;}inttestleft()//测试能否左移{intflag=0;for(inti=0;i<=3;i++)for(intj=0;j<3;j++){if(if2n(pane[i][j]+pane[i][j+1])==1){f
6、<7、"<8、-----------------------9、"<10、4;intq=rand()%4;pane[m][n]=pane[p][q]=2;showpane();}intif2n(intx)//判断x是否是2的n次方{intflag=0;for(intn=1;n<=11;n++){if(x==pow(2,n)){flag=1;if(n>N)N=n;returnflag;}}returnflag;}intupmove()//上移{intflag=0;for(intj=0;j<=3;j++)for(inti=0;i<3;i++){if(if2n(pane[i][j11、]+pane[i+1][j])==1){pane[i][j]=pane[i][j]+pane[i+1][j];pane[i+1][j]=0;flag=1;}}returnflag;}intdownmove()//下移{intflag=0;for(intj=0;j<=3;j++)for(inti=3;i>0;i--){if(if2n(pane[i][j]+pane[i-1][j])==1){pane[i][j]=pane[i][j]+pane[i-1][j];pane[i-1][j]=0;flag=1;12、}}returnflag;}intleftmove()//左移{intflag=0;for(inti=0;i<=3;i++)for(intj=0;j<3;j++){if(if2n(pane[i][j]+pane[i][j+1])==1){pane[i][j]=pane[i][j]+pane[i][j+1];pane[i][j+1]=0;flag=1;}}returnflag;}intrightmove()//右移{intflag=0;for(inti=0;i<=3;i++)for(intj=3;j>013、;j--){if(if2n(pane[i][j]+pane[i][j-1])==1){pane[i][j]=pane[i][j]+pane[i][j-1];pane[i][j-1]=0;flag=1;}}returnflag;}inttestup()//能否上移测试{intflag=0;for(intj=0;j<=3;j++)for(inti=0;i<3;i++){if(if2n(pane[i][j]+pane[i+1][j])==1){flag=1;}}returnflag;}inttestdown14、()//测试能否下移{intflag=0;for(intj=0;j<=3;j++)for(inti=3;i>0;i--){if(if2n(pane[i][j]+pane[i-1][j])==1){flag=1;}}returnflag;}inttestleft()//测试能否左移{intflag=0;for(inti=0;i<=3;i++)for(intj=0;j<3;j++){if(if2n(pane[i][j]+pane[i][j+1])==1){f
7、"<8、-----------------------9、"<10、4;intq=rand()%4;pane[m][n]=pane[p][q]=2;showpane();}intif2n(intx)//判断x是否是2的n次方{intflag=0;for(intn=1;n<=11;n++){if(x==pow(2,n)){flag=1;if(n>N)N=n;returnflag;}}returnflag;}intupmove()//上移{intflag=0;for(intj=0;j<=3;j++)for(inti=0;i<3;i++){if(if2n(pane[i][j11、]+pane[i+1][j])==1){pane[i][j]=pane[i][j]+pane[i+1][j];pane[i+1][j]=0;flag=1;}}returnflag;}intdownmove()//下移{intflag=0;for(intj=0;j<=3;j++)for(inti=3;i>0;i--){if(if2n(pane[i][j]+pane[i-1][j])==1){pane[i][j]=pane[i][j]+pane[i-1][j];pane[i-1][j]=0;flag=1;12、}}returnflag;}intleftmove()//左移{intflag=0;for(inti=0;i<=3;i++)for(intj=0;j<3;j++){if(if2n(pane[i][j]+pane[i][j+1])==1){pane[i][j]=pane[i][j]+pane[i][j+1];pane[i][j+1]=0;flag=1;}}returnflag;}intrightmove()//右移{intflag=0;for(inti=0;i<=3;i++)for(intj=3;j>013、;j--){if(if2n(pane[i][j]+pane[i][j-1])==1){pane[i][j]=pane[i][j]+pane[i][j-1];pane[i][j-1]=0;flag=1;}}returnflag;}inttestup()//能否上移测试{intflag=0;for(intj=0;j<=3;j++)for(inti=0;i<3;i++){if(if2n(pane[i][j]+pane[i+1][j])==1){flag=1;}}returnflag;}inttestdown14、()//测试能否下移{intflag=0;for(intj=0;j<=3;j++)for(inti=3;i>0;i--){if(if2n(pane[i][j]+pane[i-1][j])==1){flag=1;}}returnflag;}inttestleft()//测试能否左移{intflag=0;for(inti=0;i<=3;i++)for(intj=0;j<3;j++){if(if2n(pane[i][j]+pane[i][j+1])==1){f
8、-----------------------
9、"<10、4;intq=rand()%4;pane[m][n]=pane[p][q]=2;showpane();}intif2n(intx)//判断x是否是2的n次方{intflag=0;for(intn=1;n<=11;n++){if(x==pow(2,n)){flag=1;if(n>N)N=n;returnflag;}}returnflag;}intupmove()//上移{intflag=0;for(intj=0;j<=3;j++)for(inti=0;i<3;i++){if(if2n(pane[i][j11、]+pane[i+1][j])==1){pane[i][j]=pane[i][j]+pane[i+1][j];pane[i+1][j]=0;flag=1;}}returnflag;}intdownmove()//下移{intflag=0;for(intj=0;j<=3;j++)for(inti=3;i>0;i--){if(if2n(pane[i][j]+pane[i-1][j])==1){pane[i][j]=pane[i][j]+pane[i-1][j];pane[i-1][j]=0;flag=1;12、}}returnflag;}intleftmove()//左移{intflag=0;for(inti=0;i<=3;i++)for(intj=0;j<3;j++){if(if2n(pane[i][j]+pane[i][j+1])==1){pane[i][j]=pane[i][j]+pane[i][j+1];pane[i][j+1]=0;flag=1;}}returnflag;}intrightmove()//右移{intflag=0;for(inti=0;i<=3;i++)for(intj=3;j>013、;j--){if(if2n(pane[i][j]+pane[i][j-1])==1){pane[i][j]=pane[i][j]+pane[i][j-1];pane[i][j-1]=0;flag=1;}}returnflag;}inttestup()//能否上移测试{intflag=0;for(intj=0;j<=3;j++)for(inti=0;i<3;i++){if(if2n(pane[i][j]+pane[i+1][j])==1){flag=1;}}returnflag;}inttestdown14、()//测试能否下移{intflag=0;for(intj=0;j<=3;j++)for(inti=3;i>0;i--){if(if2n(pane[i][j]+pane[i-1][j])==1){flag=1;}}returnflag;}inttestleft()//测试能否左移{intflag=0;for(inti=0;i<=3;i++)for(intj=0;j<3;j++){if(if2n(pane[i][j]+pane[i][j+1])==1){f
10、4;intq=rand()%4;pane[m][n]=pane[p][q]=2;showpane();}intif2n(intx)//判断x是否是2的n次方{intflag=0;for(intn=1;n<=11;n++){if(x==pow(2,n)){flag=1;if(n>N)N=n;returnflag;}}returnflag;}intupmove()//上移{intflag=0;for(intj=0;j<=3;j++)for(inti=0;i<3;i++){if(if2n(pane[i][j
11、]+pane[i+1][j])==1){pane[i][j]=pane[i][j]+pane[i+1][j];pane[i+1][j]=0;flag=1;}}returnflag;}intdownmove()//下移{intflag=0;for(intj=0;j<=3;j++)for(inti=3;i>0;i--){if(if2n(pane[i][j]+pane[i-1][j])==1){pane[i][j]=pane[i][j]+pane[i-1][j];pane[i-1][j]=0;flag=1;
12、}}returnflag;}intleftmove()//左移{intflag=0;for(inti=0;i<=3;i++)for(intj=0;j<3;j++){if(if2n(pane[i][j]+pane[i][j+1])==1){pane[i][j]=pane[i][j]+pane[i][j+1];pane[i][j+1]=0;flag=1;}}returnflag;}intrightmove()//右移{intflag=0;for(inti=0;i<=3;i++)for(intj=3;j>0
13、;j--){if(if2n(pane[i][j]+pane[i][j-1])==1){pane[i][j]=pane[i][j]+pane[i][j-1];pane[i][j-1]=0;flag=1;}}returnflag;}inttestup()//能否上移测试{intflag=0;for(intj=0;j<=3;j++)for(inti=0;i<3;i++){if(if2n(pane[i][j]+pane[i+1][j])==1){flag=1;}}returnflag;}inttestdown
14、()//测试能否下移{intflag=0;for(intj=0;j<=3;j++)for(inti=3;i>0;i--){if(if2n(pane[i][j]+pane[i-1][j])==1){flag=1;}}returnflag;}inttestleft()//测试能否左移{intflag=0;for(inti=0;i<=3;i++)for(intj=0;j<3;j++){if(if2n(pane[i][j]+pane[i][j+1])==1){f
此文档下载收益归作者所有