admin 管理员组

文章数量: 887019


2024年1月5日发(作者:名词解释jsp)

C语言课程设计贪吃蛇源代码

c语言程序贪吃蛇代码

#include#include#include#include#include#definen21file*fp;ints;

voidboundary(void);//已经开始界面voidend(void);//完结

voidgotoxy(intx,inty)//位置函数{coordpos;pos.x=x;pos.y=y;setconsolecursorposition(getstdhandle(std_output_handle),pos);}

voidcolor(inta)//颜色函数{setconsoletextattribute(getstdhandle(std_output_handle),a);}

voidinit(intfood[2])//初始化函数(初始化围墙、显示信息、苹果){system(inti,j;//初始化围墙intwall[n+2][n+2]={{0}};//初始化围墙的二维数组

for(i=1;i<=n;i++){for(j=1;j<=n;j++)wall[i][j]=1;}

color(10);

for(i=0;iprintf(}gotoxy(n+3,3);//显示信息color(14);printf(按a,b,c,d改变方向ngotoxy(n+3,1);color(14);printf(按任意键暂停,按1回到,按2选择退出ngotoxy(n+5,3);color(14);printf(food[0]=rand()%n+1;//随机发生食物}food[1]=rand()%n+1;gotoxy(food[0],food[1]);color(12);printf(voidplay()//具体内容玩玩的过程{system(inti,j;int**snake=null;//定义蛇的二维指针intfood[2];//食物的数组,food[0]代表横坐标,food[1]代表纵坐标intscore=0;//为罚球inttail[2];//此数组为了记录蛇的头的座标intnode=3;//蛇的节数charch='p';srand((unsigned)time(null));//随机数发生器的初始化函数init(food);snake=(int**)realloc(snake,sizeof(int*)*node);//发生改变snake所指内存区域的大小为node长度for(i=0;igotoxy(snake[i][0],snake[i][1]);color(14);printf(}while(1)//步入消息循环{gotoxy(5,0);color(10);printf(gotoxy(0,5);color(10);printf(gotoxy(0,7);color(10);printf(gotoxy(0,9);color(10);printf(tail[0]=snake[node-1][0];//将蛇的后一节座标参数值tail数组tail[1]=snake[node-1][1];gotoxy(tail[0],tail[1]);color(0);printf(for(i=node-1;i>0;i--)//蛇想前移动的关键算法,后一节的占有前一节的地址座标{snake[i][0]=snake[i-1][0];snake[i][1]=snake[i-1][1];gotoxy(snake[i][0],snake[i][1]);color(14);printf(}if(kbhit())//抓取输出信息{gotoxy(0,n+2);ch=getche();}switch(ch){case'w':snake[0][1]--

;break;case's':snake[0][1]++;break;case'a':snake[0][0]--;break;case'd':snake[0][0]++;break;case'1':boundary();break;case'2':end();break;default:break;}gotoxy(snake[0][0],snake[0][1]);color(14);printf(sleep(abs(200-0.5*score));//并使随着分数的快速增长蛇的移动速度越来越快if(snake[0][0]==food[0]&&snake[0][1]==food[1])//吞下食物后蛇分数提1,蛇长提1{score++;//分数减少s=score;node++;//节数减少snake=(int**)realloc(snake,sizeof(int*)*node);snake[node-1]=(int*)malloc(sizeof(int)*2);food[0]=rand()%n+1;//产生随机数且要在围墙内部


本文标签: 数组 分数 围墙