PAGE

PAGE 1

C语言2048小游戏课设

项目说明

本系统基于C语言开发,适用于刚入门的C语言新手项目课设,开发软件采用VC++6.0开发,VS,DEV C++等均可运行。(书生)

项目运行截图

开始界面

代码界面截图

完整代码

#include

#include

#include

#include

#define N 4

int star(int (*p)[N]);

int sencen(int (*p)[N]);

int dayin(int (*p)[N]);

int panduan(int (*p)[N]);

int up(int (*p)[N]);

int left(int (*p)[N]);

int right(int (*p)[N]);

int down(int (*p)[4]);

int df=0;//全局变量 得分

int main(void){

int aa[N][N];

char ch ;

srand((unsigned)time(NULL));//随机数种子

printf("\n#####################2048#####################\n");

printf("\n\n\n任意键开始");

if(getch())star(aa);

}

int star(int (*p)[N]) {

int key,i,j;

df=0;

for(i=0;i

for(j=0;j

p[i][j]=0;

system("cls");

sencen(p);

sencen(p);

dayin(p);

while(1){

key=getch();

switch(key)

{

case 72 : up(p),dayin(p),panduan(p);break;

case 75 : left(p),dayin(p),panduan(p);break;

case 77 : right(p),dayin(p),panduan(p);break;

case 80 : down(p),dayin(p),panduan(p);break;

case 27 : return 0;break;

case 32 : star(p);break;

}

}

}

int sencen(int (*p)[N])//在表中生成一个数

{

int s,j,i;

while(1){

s=rand()%(4);//随机数0-3

j=rand()%(4);

if(p[s][j]==0)

{

p[s][j]=2*(rand()%2+1);

break;

}

}

return 0;

}

int dayin(int (*p)[N])//打印数字

{

int i,j;

printf("\n#####################2048#####################\n\n");

for(i=0;i

{

for(j=0;j

if(p[i][j]==0)printf("%4c ",'-');

else printf("%4d ",p[i][j]);

printf("\n");

}

printf("\n 得分:%d",df);

printf("\n\n方向键:控制\tESC:退出\t空格:重置");

printf("\n\n\n#####################2048#####################\n\n");

return 0;

}

int panduan(int (*p)[N])//判断游戏胜利与结束

{

int i,j,flag1=1,flag2=1;//flag1=0时,表中有0, flag2=0时表中相邻数存在相等的.

for(i=0;i

{

if((i

for(j=0;j

if((j

if(p[i][j]==0) flag1=0;

if(p[i][j]==2048)printf("\n#####################WIN#####################\n");

if((i

更多推荐

c语言2048代码linux,C语言2048小游戏课设(附源码).doc