c语言写了一个贪吃蛇 素颜马尾好姑娘i 2022-07-17 02:42 151阅读 0赞 1. ![Center][] 2. 很简单的 可能存在一些bug 大牛不要嘲笑 #include "stdafx.h" #include <conio.h> #include "head.h" #include <Windows.h> #include <time.h> int x=-1,y=-1,m=0;//m为蛇的长度 n为食物个数 int nx=-1,ny=-1,n=0; int chengji=0; void 游戏开始(); void 显示(); void 画蛇(); void 蛇头运动(); void 蛇身运动(); void 初始蛇的随机位置(); void 改变蛇的方向(); void 是否死亡(); void 画食物(); void 蛇吃食物(); void 蛇变长(); void 成绩(); void 打印墙体(); int _tmain(int argc, _TCHAR* argv[]) { 游戏开始(); 初始蛇的随机位置(); while (1) { system("cls"); 画蛇(); 画食物(); 显示(); 蛇身运动(); 改变蛇的方向(); 蛇头运动(); 改变蛇的方向(); 蛇吃食物(); 成绩(); 是否死亡(); Sleep(200); } return 0; } void 成绩() { printf("总分为:%d 长度为:%d\n",chengji,m); } void 蛇变长() { if(she[m-1][2]==1) { she[m][0]=she[m-1][0]; she[m][1]=she[m-1][1]-1; she[m][2]=she[m-1][2]; } else if(she[m-1][2]==2) { she[m][0]=she[m-1][0]; she[m][1]=she[m-1][1]+1; she[m][2]=she[m-1][2]; } else if(she[m-1][2]==3) { she[m][0]=she[m-1][0]-1; she[m][1]=she[m-1][1]; she[m][2]=she[m-1][2]; } else if(she[m-1][2]==4) { she[m][0]=she[m-1][0]+1; she[m][1]=she[m-1][1]; she[m][2]=she[m-1][2]; } } void 蛇吃食物() { if(qipan[ny][nx]==2) { n=0; 蛇变长(); chengji+=10; m++; } } void 画食物() { if(n==0) { do { nx=rand()%21+1; ny=rand()%21+1; } while(qipan[ny][nx]==2); qipan[ny][nx]=3; n++; } } void 是否死亡() { int sum=0; for(int i=0;i<23;i++) { for(int j=0;j<23;j++) { if (qipan[i][j]==1) { sum++; } } } if (sum!=88) { printf("游戏结束\n"); system("pause"); exit(0); } } void 游戏开始() { printf("\t\t\t 《贪吃蛇》\n"); printf("\t\t\t 按任意键开始游戏\n"); getch(); } void 显示() { for(int i=0;i<23;i++) { for(int j=0;j<23;j++) { if (qipan[i][j]==1) { printf("■");//墙 } else if(qipan[i][j]==0) { printf(" ");//空 } else if(qipan[i][j]==2) { printf("■");//蛇 } else if(qipan[i][j]==3) { printf("* "); } } printf("\n"); } } void 初始蛇的随机位置() { srand(time(0)); x=rand()%16+3; y=rand()%21+1; //生成初始蛇 she[0][0]=x; she[0][1]=y; she[0][2]=3; she[1][0]=x+1; she[1][1]=y; she[1][2]=3; she[2][0]=x+2; she[2][1]=y; she[2][2]=3; m=3; } void 画蛇() { for (int i=0;i<70;i++) { if(she[i][0]!=0) { qipan[she[i][1]][she[i][0]]=2; } } } void 蛇头运动() { if (she[0][2]==1) {//上 she[0][1]=she[0][1]-1; } else if (she[0][2]==2) {//下 she[0][1]=she[0][1]+1; } else if (she[0][2]==3) {//左 she[0][0]=she[0][0]-1; } else if (she[0][2]==4) {//右 she[0][0]=she[0][0]+1; } } void 蛇身运动() { for(int i=69;i>=1;i--) { if(she[i][0]!=0) { if(m==i+1) { qipan[(she[i][1])][(she[i][0])]=0; } she[i][0]=she[i-1][0]; she[i][1]=she[i-1][1]; she[i][2]=she[i-1][2]; } } } void 改变蛇的方向() { if(kbhit() != 0) { int key; while(kbhit() != 0) key = getch(); if(key==72)//上 { if(she[0][2]!=2) { she[0][2]=1; } } if(key==80)//下 if(she[0][2]!=1) { she[0][2]=2; } if(key==75)//左 if(she[0][2]!=4) { she[0][2]=3; } if(key==77)//右 if(she[0][2]!=3) { she[0][2]=4; } } } 0 [Center]: /images/20220717/483446c8a0694a07bf5dce51b70c38aa.png
还没有评论,来说两句吧...