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改变方向\\n\gotoxy(n+3,1);color(14);printf(\按任意键暂停,按1回到,按2选择退出\\n\gotoxy(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;//产生随机数且要在围墙内部
   
   

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。