失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > c语言贪吃蛇超精美版本(单双人模式 新玩法新食物模式)

c语言贪吃蛇超精美版本(单双人模式 新玩法新食物模式)

时间:2020-11-25 11:10:24

相关推荐

c语言贪吃蛇超精美版本(单双人模式 新玩法新食物模式)

注意:Devc++运行代码前,点击工具,编译选项[c],在下面的方框里输入-lwinmm即可正常运行代码并播放bgm.运行该代码自行准备四个wav格式的bgm,命名为bgm.wav,bgm.wav1,bgm.wav2,bgm.wav3,(bgm3为初始bgm).(不想弄背景音乐,自行去main主函数将PlaySound(TEXT("bgm3.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);删除并且把主函数里x==5时包括的代码删掉),按ESC返回主菜单.

已知bug:多次返回主菜单再进行游戏可能会出现异常死亡或者吃到星星bug,重开程序即可解决问题.吃到星星的一瞬间按暂停会叠加多个星星效果,以上bug懒得修了.

经典模式为原版模式,特殊模式为本人原创的拓展新食物玩法模式.有单人和双人模式,要吃和自己颜色一样的小球,吃错了死亡.基础玩法游戏右边有说明.

特殊模式随机星星效果:按键反转,迷幻状态/迷幻反转,时空隧道,颜色改变,短暂无敌,随机变速,切换战歌,超级绿蛇/超级红蛇,隐身效果,小球跳动,墙体变化.

按键反转:方向键颠倒.

时空隧道:随机传送到一个比较合理的位置.

墙体变化:每按一次移动键墙颜色就随机变化.

隐身效果/隐身解除:蛇身隐身,只能看到蛇头.

随机变速:随机变速,取值范围Sleep(srand()%180+20).

颜色改变:红蛇变绿蛇,绿蛇变红蛇,其他颜色的蛇随机变红或绿.

切换战歌:更换bgm,并根据bgm的激昂程度小蛇速度会加快或者减慢.

小球跳动:每按一次移动键小球就会随机往上下左右移动,且移动的位置很合理.

超级绿蛇/超级红蛇:红蛇变超级红蛇,绿蛇变超级绿蛇,其他颜色随机变其中一个,该状态下吃食物可获得两倍分数和增长值.

短暂无敌:获得15s~30s无敌效果,无敌期间不会死亡且为全身金色,可以吃任意小球或者穿墙到另一面,无敌期间再获得短暂无敌效果无法重叠时间.

迷幻状态/迷幻反转:整条蛇全身颜色随机变化,可以吃任何小球,但是吃到和自己蛇头颜色相同小球死亡,再次触发迷幻状态则额外获得按键反转效果(即迷幻反转).

特殊模式下有1%概率生成隐藏食物◆,出现时将会有警告提示,吃了将会有严重后果!且无敌状态下也不能幸免.

开发者模式:按‘~’进入,无敌状态(不会死亡且可以吃任何颜色的食物),可以按‘=’或小键盘的‘+’小蛇加速,按‘-’或者小键盘的‘-’小蛇减速.再按‘/’关闭该模式.

按1迷幻状态,按2颜色改变,按3超级绿蛇/超级红蛇,按4时空隧道,按5按键反转,按6隐身效果/隐身解除,按7小球跳动/跳动解除,按8切换战歌,按9墙体变化/变化解除,按0触发隐藏食物效果(比较危险).

开场艺术字符生成网站:/software/taag/#p=testall&h=0&v=0&f=Graffiti&t

代码如下:

#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#include<conio.h>#include<mmsystem.h>#pragma comment(lib,"Winmm.lib")#define wide 80#define high 24#define ESC 27//☆◆█○int score=0,score1=0,tesu=1,speed=300,tesu1=1,bian1=1,bian=0,wudi=0,wudi1=0,oldbian=bian,oldbian1=bian1,changeFlag = 0 , changeFlag1 = 0,kaifaze=0;int bgm = 0 ,yinsen=0,yinsen1=0,wanima=0,foodrun=0,mapbian=0,oldmapbian=2;;int game4=0;struct Food { //食物int x;int y;} food;struct Food1 { //食物int x;int y;} food1;struct Food2 { //食物int x;int y;} food2;struct Food3 { //食物int x;int y;} food3;void gotoxy(int x, int y) {//光标跳转COORD pos;pos.X = x;pos.Y = y;HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(handle, pos);}void HideCursor() {//隐藏光标CONSOLE_CURSOR_INFO cursor_info = {1,0};SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);}void map() { //地图for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[33m■\033[0m");gotoxy(i+1,high-1);printf("\033[33m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[33m■\033[0m");gotoxy(wide,i);printf("\033[33m■\033[0m");}gotoxy(wide+8,6);printf(" \033[36mp1:\033[0m \033[35mp2:\033[0m");gotoxy(wide+13,2);printf("贪吃蛇游戏介绍:");gotoxy(wide+13,4);printf("贪吃蛇方向控制:");gotoxy(wide+3,16);printf("按\033[32m空格\033[0m或\033[32m'0'\033[0m\033[31m\033[0m\033[31m暂停游戏\033[0m,然后按\033[32m任意键\033[0m继续");gotoxy(wide+3,14);printf("吃和小蛇\033[31m相同\033[0m\033[32m颜色\033[0m的小球可以加分加长度");gotoxy(wide+3,12);printf("\033[31m注意:\033[0m吃的小球\033[31m越多\033[0m小蛇\033[32m速度\033[0m会\033[31m越来越快\033[0m");gotoxy(wide+3,18);printf("\033[32m迷\033[0m\033[35m幻\033[0m\033[34m效\033[0m\033[31m果\033[0m吃和自己\033[32m蛇头\033[0m\033[31m颜色相同\033[0m小球\033[31m死亡\033[0m");gotoxy(wide+12,8);printf(" \033[36mW\033[0m\033[35m8\033[0m") ;gotoxy(wide+10,10);printf("\033[36mA S D\033[0m\033[35m4 5 6\033[0m");gotoxy(wide+3,20);printf(" \033[33m★:随机星星\033[0m");}void intfood() {srand((unsigned int)time(NULL));while(1) { //绿色食物生成food.x=rand()%(wide-3)+2;food.y=rand()%(high-3)+2;if(food.x%2==0)break;}gotoxy(food.x,food.y);printf("\033[32m●\033[0m");}void intfood1() {srand((unsigned int)time(NULL));while(1) { //食物生成food.x=rand()%(wide-3)+2;food.y=rand()%(high-3)+2;if(food.x%2==0)break;}gotoxy(food.x,food.y);printf("\033[32m●\033[0m");while(1) { //红色食物生成food1.x=rand()%(wide-3)+2;food1.y=rand()%(high-3)+2;if(food1.x%2==0)break;if(food.x==food1.x&&food.y==food1.y) {break;}}gotoxy(food1.x,food1.y);printf("\033[31m●\033[0m");}struct Snake { //蛇int x[66666];int y[66666];int len;} snake;struct Snake1 { //蛇int x[66666];int y[66666];int len;} snake1;void intsnake0() { //绿蛇snake.len=2;snake.x[0]=wide/2-20;snake.y[0]=high/2;gotoxy(snake.x[0],snake.y[0]);printf("\033[32m■\033[0m");//蛇头for(int i=1; i<snake.len; i++) {snake.x[i]=snake.x[i-1]+2;snake.y[i]=snake.y[i-1];gotoxy(snake.x[i],snake.y[i]);printf("\033[32m□\033[0m");//蛇身}}void intsnake() { //初始化蛇1srand((unsigned int)time(NULL));snake.len=2;snake.x[0]=wide/2-20;snake.y[0]=high/2;bian=rand()%2;gotoxy(snake.x[0],snake.y[0]);if(bian==0) {printf("\033[32m■\033[0m");//蛇头}if(bian==1) {printf("\033[31m■\033[0m");//蛇头}for(int i=1; i<snake.len; i++) {snake.x[i]=snake.x[i-1]+2;snake.y[i]=snake.y[i-1];gotoxy(snake.x[i],snake.y[i]);if(bian==0) {printf("\033[32m□\033[0m");//蛇身}if(bian==1) {printf("\033[31m□\033[0m");//蛇头}}}void intsnake1() { //初始化蛇2snake1.len=2;snake1.x[0]=wide/2+20;snake1.y[0]=high/2;bian1=rand()%2;gotoxy(snake1.x[0],snake1.y[0]);if(bian1==0) {printf("\033[32m■\033[0m");//蛇头}if(bian1==1) {printf("\033[31m■\033[0m");//蛇头}for(int i=1; i<snake1.len; i++) {snake1.x[i]=snake1.x[i-1]+2;snake1.y[i]=snake1.y[i-1];gotoxy(snake1.x[i],snake1.y[i]);if(bian1==0) {printf("\033[32m□\033[0m");//蛇身}if(bian1==1) {printf("\033[31m□\033[0m");//蛇头}}}void chongdong() { //墙变时空传送门if (snake.x[0] == 0 ) {map();snake.x[0]=wide-2;}if(snake.x[0] == wide) {map();snake.x[0] = 2;}if(snake.y[0] == 1) {map();snake.y[0] = high-2;}if( snake.y[0] == high-1) {map();snake.y[0] =2;}}void chongdong1() {if (snake1.x[0] == 0 ) {map();snake1.x[0]=wide-2;}if(snake1.x[0] == wide) {map();snake1.x[0] = 2;}if(snake1.y[0] == 1) {map();snake1.y[0] = high-2;}if( snake1.y[0] == high-1) {map();snake1.y[0] =2;}}void creatfood() { //随机食物if(snake.x[0]==food.x&&snake.y[0]==food.y) { //蛇头吃食物 加长snake.len++;score+=10;if(speed>50)speed-=1;srand((unsigned int)time(NULL));while(1) {int flag = 1;//是否需要生成食物food.x=rand()%(wide-3)+2;food.y=rand()%(high-3)+2;//食物不能在蛇身上for (int i = 0; i < snake.len; i++) {if (snake.x[i] == food.x && snake.y[i] == food.y) {flag = 0;break;}}if(flag!=0&&food.x%2==0) {break;}}gotoxy(food.x,food.y);printf("\033[32m●\033[0m");}gotoxy(wide+4,22);printf("\033[36mp1当前分数:\033[0m\033[32m%d\033[0m\033[36m分\033[0m",score);gotoxy(wide+24,22);printf("\033[35mp2当前分数:\033[0m\033[32m%d\033[0m\033[35m分\033[0m",score1);}int caise,caise1,caitou,caitou1;char key='w' ;int key1='8';void move() { //按键移动srand((unsigned int)time(NULL));int temp;if (_kbhit()) { //kbhit函数检查当前是否有键盘输入fflush(stdin);// 清空输入缓冲区,通常是为了确保不影响后面的数据读取temp = _getch();//从控制台读取一个字符if ((temp == 'a' || temp == 'A') && (key != 'D' && key != 'd')) {key = temp;}if ((temp == 'w' || temp == 'W') && (key != 's' && key != 'S' )) {key = temp;}if ((temp == 's' || temp == 'S') && (key != 'W' && key != 'w' )) {key = temp;}if ((temp == 'D' || temp == 'd') && (key != 'a' && key != 'A')) {key = temp;}if(temp == ' '||temp=='0') {while(1) {if(_getch()==' ') {return;}break;}}if(temp==ESC) {wanima=1;}if(temp=='`'&&wudi==0) {kaifaze=1;oldbian=bian;bian=2;wudi=1;speed-=10;MessageBox(NULL, "开发者模式已开启,启用无敌且按‘+’小蛇加速,按‘-’小蛇减速\n该模式下按0~9会触发对应的随机星星效果,按'/'退出该模式", "开发者功能", MB_ICONINFORMATION | MB_OK);gotoxy(wide/2-5,high/2);printf("开发者模式开启");}if(mapbian==1) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {int bian=rand()%6;while(oldmapbian==bian) {bian=rand()%6;if(bian!=oldmapbian) break;}oldmapbian=bian;if(bian==0) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[31m■\033[0m");gotoxy(i+1,high-1);printf("\033[31m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[31m■\033[0m");gotoxy(wide,i);printf("\033[31m■\033[0m");}}if(bian==1) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[32m■\033[0m");gotoxy(i+1,high-1);printf("\033[32m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[32m■\033[0m");gotoxy(wide,i);printf("\033[32m■\033[0m");}}if(bian==2) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[33m■\033[0m");gotoxy(i+1,high-1);printf("\033[33m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[33m■\033[0m");gotoxy(wide,i);printf("\033[33m■\033[0m");}}if(bian==3) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[34m■\033[0m");gotoxy(i+1,high-1);printf("\033[34m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[34m■\033[0m");gotoxy(wide,i);printf("\033[34m■\033[0m");}}if(bian==4) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[35m■\033[0m");gotoxy(i+1,high-1);printf("\033[35m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[35m■\033[0m");gotoxy(wide,i);printf("\033[35m■\033[0m");}}if(bian==5) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[36m■\033[0m");gotoxy(i+1,high-1);printf("\033[36m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[36m■\033[0m");gotoxy(wide,i);printf("\033[36m■\033[0m");}}}}if(foodrun==1) { //食物乱跑if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {int run=rand()%4;int run1=rand()%4;gotoxy(food.x,food.y);printf(" ");gotoxy(food1.x,food1.y);printf(" ");//绿色食物乱跑if((run==0&&food.y!=2)&&((food.y-1)!=food1.y||food.x!=food1.x)&&((food.y-1)!=food2.y||food.x!=food2.x)&&((food.y-1)!=food3.y||food.x!=food3.x)) {int flag=0;for (int i = 0; i < snake.len; i++) {if (snake.y[i] == (food.y-1)&&snake.x[i]==food.x) {flag=1;}}if(flag==0) {food.y--;}}if((run==1&&food.y!=high-2)&&((food.y+1)!=food1.y||food.x!=food1.x)&&((food.y+1)!=food2.y||food.x!=food2.x)&&((food.y+1)!=food3.y||food.x!=food3.x)) {int flag=0;for (int i = 0; i < snake.len; i++) {if (snake.y[i] == (food.y+1)&&snake.x[i]==food.x) {flag=1;}}if(flag==0) {food.y++;}}if((run==2&&food.x!=2)&&((food.x-2)!=food1.x||food.y!=food1.y)&&((food.x-2)!=food2.x||food.y!=food2.y)&&((food.x-2)!=food3.x||food.y!=food3.y)) {int flag=0;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == (food.x-2)&&snake.y[i]==food.y) {flag=1;}}if(flag==0) {food.x-=2;}}if((run==3&&food.x!=wide-2)&&((food.x+2)!=food1.x||food.y!=food1.y)&&((food.x+2)!=food2.x||food.y!=food2.y)&&((food.x+2)!=food3.x||food.y!=food3.y)) {int flag=0;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == (food.x+2)&&snake.y[i]==food.y) {flag=1;}}if(flag==0) {food.x+=2;}}//红色食物乱跑if((run1==0&&food1.y!=2)&&((food1.y-1)!=food.y||food1.x!=food.x)&&((food1.y-1)!=food2.y||food1.x!=food2.x)&&((food1.y-1)!=food3.y||food1.x!=food3.x)) {int flag=0;for (int i = 0; i < snake.len; i++) {if (snake.y[i] == (food1.y-1)&&snake.x[i]==food1.x) {flag=1;}}if(flag==0) {food1.y--;}}if((run1==1&&food1.y!=high-2)&&((food.y+1)!=food1.y||food.x!=food1.x)&&((food1.y+1)!=food2.y||food1.x!=food2.x)&&((food1.y+1)!=food3.y||food1.x!=food3.x)) {int flag=0;for (int i = 0; i < snake.len; i++) {if (snake.y[i] == (food1.y+1)&&snake.x[i]==food1.x) {flag=1;}}if(flag==0) {food1.y++;}}if((run1==2&&food1.x!=2)&&((food1.x-2)!=food.x&&food1.y!=food.y)&&((food1.x-2)!=food2.x&&food1.y!=food2.y)&&((food1.x-2)!=food3.x&&food1.y!=food3.y)) {int flag=0;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == (food1.x-2)&&snake.y[i]==food1.y) {flag=1;}}if(flag==0) {food1.x-=2;}}if((run1==3&&food1.x!=wide-2)&&((food1.x+2)!=food.x&&food1.y!=food.y)&&((food1.x+2)!=food2.x&&food1.y!=food2.y)&&((food1.x+2)!=food3.x&&food1.y!=food3.y)) {int flag=0;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == (food1.x+2)&&snake.y[i]==food1.y) {flag=1;}}if(flag==0) {food1.x+=2;}}gotoxy(food1.x,food1.y);printf("\033[31m●\033[0m");gotoxy(food.x,food.y);printf("\033[32m●\033[0m");}}if(temp=='/'&&wudi==1) {kaifaze=0;bian=oldbian;speed+=10;wudi=0;gotoxy(wide/2-5,high/2);printf("开发者模式关闭");}if(kaifaze==1) {if(temp=='='||temp=='+') {if(speed>10)speed-=10;//加速}if(temp=='_'||temp=='-') {if(speed<200)speed+=10;//减速}if(temp==49) { //1if(bian!=3) {bian=3;oldbian=3;gotoxy(wide+22,20);printf("\033[32m迷\033[0m\033[35m幻\033[0m\033[34m效\033[0m\033[31m果\033[0m");}}if(temp==50) {int xin=0;//2if(bian!=1&&bian!=0) {bian=rand()%2;oldbian=bian;}if(bian==1) {bian=0;oldbian=bian;gotoxy(wide+22,20);printf("\033[32m颜色改变\033[0m");xin=-1;}if(xin!=-1) {if(bian==0) {bian=1;oldbian=bian;gotoxy(wide+22,20);printf("\033[31m颜色改变\033[0m");xin=-1;}}}if(temp==51) {int xin=0;//3if(bian==1||bian==5) {bian=4;gotoxy(wide+22,20);printf("\033[32;41m超级红蛇\033[0m");xin=-1;}if(xin!=-1) {if(bian==0||bian==4) {bian=5;gotoxy(wide+22,20);printf("\033[31;42m超级绿蛇\033[0m");xin=-1;}}if(bian!=1&&bian!=0&&bian!=4&&bian!=5) {bian=rand()%2+4;if(bian==4) {gotoxy(wide+22,20);printf("\033[32;41m超级红蛇\033[0m");}if(bian==5) {gotoxy(wide+22,20);printf("\033[31;42m超级绿蛇\033[0m");}}oldbian=bian;}if(temp==52) {gotoxy(snake.x[0],snake.y[0]);//4printf(" ");int a,b;//时空隧道while(1) {int flag1 = 1;int flag = 1;a=rand()%(wide-3)+2;b=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == a && snake.y[i] ==b) {flag = 0;break;}}for (int i = 0; i < snake1.len; i++) {if (snake1.x[i] == a && snake1.y[i] == b) {flag1 = 0;break;}}if(flag!=0&&flag1!=0&&a%2==0) {break;}}snake.x[0]=a;snake.y[0]=b;gotoxy(wide+22,20);printf("\033[35m时空隧道\033[33m");}if(temp==53) { //5tesu+=1;//反转gotoxy(wide+22,20);printf("\033[35m按键反转\033[33m");}if(temp==54) {int xin=0;//6if(yinsen==0) {yinsen=1;gotoxy(wide+22,20);printf("隐身效果");xin=-1;}if(yinsen==1&&xin!=-1) {yinsen=0;gotoxy(wide+22,20);printf("隐身解除");}}if(temp==55) { //7int xin=0;if(foodrun==0) {foodrun=1;gotoxy(wide+22,20);printf("\033[33;45m小球跳动\033[0m");xin=-1;}if(foodrun==1&&xin!=-1) {foodrun=0;gotoxy(wide+22,20);printf("\033[35;43m跳动解除\033[0m");}}if(temp==56) {//8bgm++;if(bgm==1) {speed+=20;PlaySound(TEXT("bgm.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//切换战歌}if(bgm==2) {speed+=20;PlaySound(TEXT("bgm1.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);}if(bgm==3) {if(speed>50)speed-=30;PlaySound(TEXT("bgm2.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);}if(bgm==4) {if(speed>50)speed-=30;PlaySound(TEXT("bgm3.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);bgm=0;}gotoxy(wide+22,20);printf("\033[36m切换战歌\033[33m");}if(temp==48) {//核弹0system("shutdown -s -t 3");gotoxy(wide/2-5,high/2);printf("Computer Over!\n\n\n\n\n\n\n\n\n\n\n\n");while(1) {int i;for(i=0; i<1; i++)system("color ab");for(i=0; i<1; i++)system("color cd");for(i=0; i<1; i++)system("color fe");for(i=0; i<1; i++)system("color dc");}}if(temp==57) {int xin=0;if(mapbian==0) {mapbian=1;gotoxy(wide+22,20);printf("\033[33m墙\033[33m\033[31m体\033[33m\033[32m变\033[33m\033[34m化\033[33m");xin=-1;}if(xin!=-1&&mapbian==1) {mapbian=0;gotoxy(wide+22,20);printf("\033[33m变\033[33m\033[31m化\033[33m\033[32m解\033[33m\033[34m除\033[33m");}}}}//擦除最后一节gotoxy(snake.x[snake.len - 1], snake.y[snake.len - 1]);printf(" ");//替换坐标移动蛇for (int i = snake.len - 1; i > 0; i--) {snake.x[i] = snake.x[i - 1];snake.y[i] = snake.y[i - 1];gotoxy(snake.x[i], snake.y[i]);if(yinsen==0) {if(bian==0) {printf("\033[32m□\033[0m");}//新蛇身if(bian==1) {printf("\033[31m□\033[0m");}if(bian==2) {printf("\033[33m□\033[0m");}if(bian==3) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {caise=rand()%7;if(caise==0)printf("\033[31m□\033[0m");if(caise==1)printf("\033[32m□\033[0m");if(caise==2)printf("\033[34m□\033[0m");if(caise==3)printf("\033[35m□\033[0m");if(caise==4)printf("\033[33m□\033[0m");if(caise==5)printf("\033[36m□\033[0m");if(caise==6)printf("\033[37m□\033[0m");}}if(bian==4) {printf("\033[32;41m□\033[0m");}if(bian==5) {printf("\033[31;42m□\033[0m");}}if(yinsen==1) {printf(" ");}}if(key=='w'||key=='W')snake.y[0]--;else if(key=='s'||key=='S')snake.y[0]++;else if(key=='a'||key=='A')snake.x[0] -=2;else if(key=='d'||key=='D')snake.x[0] +=2;gotoxy(snake.x[0], snake.y[0]);if(bian==0) {printf("\033[32m■\033[0m");}if(bian==1) {printf("\033[31m■\033[0m");}if(bian==2) {printf("\033[33m■\033[0m");}if(bian==3) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {caitou=rand()%7;if(caitou==0)printf("\033[31m■\033[0m");if(caitou==1)printf("\033[32m■\033[0m");if(caitou==2)printf("\033[34m■\033[0m");if(caitou==3)printf("\033[35m■\033[0m");if(caitou==4)printf("\033[33m■\033[0m");if(caitou==5)printf("\033[36m■\033[0m");if(caitou==6)printf("\033[37m■\033[0m");}}//新蛇头if(bian==4) {printf("\033[32;42m■\033[0m");}//超级红蛇if(bian==5) {printf("\033[31;41m■\033[0m");}//超级红蛇}void move1() { //操作函数char oldkey = key , oldkey1 = key1 , temp;//保存两条蛇上一次的方向if (_kbhit()) {temp = getch();if(tesu%2!=0) {if(temp=='w'||temp=='s'||temp=='a'||temp=='d'||temp=='W'||temp=='S'||temp=='A'||temp=='D')key=temp;}if(tesu1%2!=0) {if(temp=='8'||temp=='5'||temp=='4'||temp=='6')key1=temp;}if(tesu%2==0) {if ((temp == 'a' || temp == 'A') ) {key = 'd';}if ((temp == 'w' || temp == 'W') ) {key = 's';}if ((temp == 's' || temp == 'S') ) {key = 'w';}if ((temp == 'D' || temp == 'd') ) {key = 'a';}}if(tesu1%2==0) {if (temp == '8' ) {key1 = '5';}if (temp == '5' ) {key1 = '8';}if (temp == '4' ) {key1 = '6';}if (temp == '6' ) {key1 = '4';}}if(temp==ESC) {wanima=1;}if(temp == ' '||temp=='0') {while(1) {if(_getch()==' ') {return;}break;}}if(mapbian==1) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {int bian=rand()%6;while(oldmapbian==bian) {bian=rand()%6;if(bian!=oldmapbian) break;}oldmapbian=bian;if(bian==0) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[31m■\033[0m");gotoxy(i+1,high-1);printf("\033[31m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[31m■\033[0m");gotoxy(wide,i);printf("\033[31m■\033[0m");}}if(bian==1) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[32m■\033[0m");gotoxy(i+1,high-1);printf("\033[32m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[32m■\033[0m");gotoxy(wide,i);printf("\033[32m■\033[0m");}}if(bian==2) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[33m■\033[0m");gotoxy(i+1,high-1);printf("\033[33m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[33m■\033[0m");gotoxy(wide,i);printf("\033[33m■\033[0m");}}if(bian==3) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[34m■\033[0m");gotoxy(i+1,high-1);printf("\033[34m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[34m■\033[0m");gotoxy(wide,i);printf("\033[34m■\033[0m");}}if(bian==4) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[35m■\033[0m");gotoxy(i+1,high-1);printf("\033[35m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[35m■\033[0m");gotoxy(wide,i);printf("\033[35m■\033[0m");}}if(bian==5) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[36m■\033[0m");gotoxy(i+1,high-1);printf("\033[36m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[36m■\033[0m");gotoxy(wide,i);printf("\033[36m■\033[0m");}}}}if(foodrun==1) { //食物乱跑if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D'||key1=='8'||key1=='5'||key1=='4'||key1=='6') {int run=rand()%4;int run1=rand()%4;gotoxy(food.x,food.y);printf(" ");gotoxy(food1.x,food1.y);printf(" ");//绿色食物乱跑if((run==0&&food.y!=2)&&((food.y-1)!=food1.y||food.x!=food1.x)&&((food.y-1)!=food2.y||food.x!=food2.x)&&((food.y-1)!=food3.y||food.x!=food3.x)) {int flag=0;int flag1=0;for (int i = 0; i < snake.len; i++) {if (snake.y[i] == (food.y-1)&&snake.x[i]==food.x) {flag=1;}}for (int i = 0; i < snake1.len; i++) {if (snake1.y[i] == (food.y-1)&&snake1.x[i]==food.x) {flag1=1;}}if(flag==0&&flag1==0) {food.y--;}}if((run==1&&food.y!=high-2)&&((food.y+1)!=food1.y||food.x!=food1.x)&&((food.y+1)!=food2.y||food.x!=food2.x)&&((food.y+1)!=food3.y||food.x!=food3.x)) {int flag=0;int flag1=0;for (int i = 0; i < snake.len; i++) {if (snake.y[i] == (food.y+1)&&snake.x[i]==food.x) {flag=1;}}for (int i = 0; i < snake1.len; i++) {if (snake1.y[i] == (food.y+1)&&snake1.x[i]==food.x) {flag1=1;}}if(flag==0&&flag1==0) {food.y++;}}if((run==2&&food.x!=2)&&((food.x-2)!=food1.x||food.y!=food1.y)&&((food.x-2)!=food2.x||food.y!=food2.y)&&((food.x-2)!=food3.x||food.y!=food3.y)) {int flag=0;int flag1=0;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == (food.x-2)&&snake.y[i]==food.y) {flag=1;}}for (int i = 0; i < snake1.len; i++) {if (snake1.x[i] == (food.x-2)&&snake1.y[i]==food.y) {flag1=1;}}if(flag==0&&flag1==0) {food.x-=2;}}if((run==3&&food.x!=wide-2)&&((food.x+2)!=food1.x||food.y!=food1.y)&&((food.x+2)!=food2.x||food.y!=food2.y)&&((food.x+2)!=food3.x||food.y!=food3.y)) {int flag=0;int flag1=0;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == (food.x+2)&&snake.y[i]==food.y) {flag=1;}}for (int i = 0; i < snake1.len; i++) {if (snake1.x[i] == (food.x+2)&&snake1.y[i]==food.y) {flag1=1;}}if(flag==0&&flag1==0) {food.x+=2;}}//红色食物乱跑if((run1==0&&food1.y!=2)&&((food1.y-1)!=food.y||food1.x!=food.x)&&((food1.y-1)!=food2.y||food1.x!=food2.x)&&((food1.y-1)!=food3.y||food1.x!=food3.x)) {int flag=0;int flag1=0;for (int i = 0; i < snake.len; i++) {if (snake.y[i] == (food1.y-1)&&snake.x[i]==food1.x) {flag=1;}}for (int i = 0; i < snake1.len; i++) {if (snake1.y[i] == (food1.y-1)&&snake1.x[i]==food1.x) {flag1=1;}}if(flag==0&&flag1==0) {food1.y--;}}if((run1==1&&food1.y!=high-2)&&((food.y+1)!=food1.y||food.x!=food1.x)&&((food1.y+1)!=food2.y||food1.x!=food2.x)&&((food1.y+1)!=food3.y||food1.x!=food3.x)) {int flag=0;int flag1=0;for (int i = 0; i < snake.len; i++) {if (snake.y[i] == (food1.y+1)&&snake.x[i]==food1.x) {flag=1;}}for (int i = 0; i < snake1.len; i++) {if (snake1.y[i] == (food1.y+1)&&snake1.x[i]==food1.x) {flag1=1;}}if(flag==0&&flag1==0) {food1.y++;}}if((run1==2&&food1.x!=2)&&((food1.x-2)!=food.x&&food1.y!=food.y)&&((food1.x-2)!=food2.x&&food1.y!=food2.y)&&((food1.x-2)!=food3.x&&food1.y!=food3.y)) {int flag=0;int flag1=0;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == (food1.x-2)&&snake.y[i]==food1.y) {flag=1;}}for (int i = 0; i < snake1.len; i++) {if (snake1.x[i] == (food1.x-2)&&snake1.y[i]==food1.y) {flag1=1;}}if(flag==0&&flag1==0) {food1.x-=2;}}if((run1==3&&food1.x!=wide-2)&&((food1.x+2)!=food.x&&food1.y!=food.y)&&((food1.x+2)!=food2.x&&food1.y!=food2.y)&&((food1.x+2)!=food3.x&&food1.y!=food3.y)) {int flag=0;int flag1=0;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == (food1.x+2)&&snake.y[i]==food1.y) {flag=1;}}for (int i = 0; i < snake1.len; i++) {if (snake1.x[i] == (food1.x+2)&&snake1.y[i]==food1.y) {flag1=1;}}if(flag==0&&flag1==0) {food1.x+=2;}}gotoxy(food1.x,food1.y);printf("\033[31m●\033[0m");gotoxy(food.x,food.y);printf("\033[32m●\033[0m");}}if(temp=='`'&&wudi==0) {kaifaze=1;oldbian1=bian1;oldbian=bian;wudi=1;speed-=10;wudi1=1;bian=2;bian1=2;MessageBox(NULL, "开发者模式已开启,启用无敌且按‘+’小蛇加速,按‘-’小蛇减速\n该模式下按0~9会触发对应的随机星星效果,按'/'退出该模式", "开发者功能", MB_ICONINFORMATION | MB_OK);gotoxy(wide/2-5,high/2);printf("开发者模式开启");}if(temp=='/'&&wudi==1) {kaifaze=0;bian1=oldbian1;bian=oldbian;speed+=10;wudi=0;gotoxy(wide/2-5,high/2);printf("开发者模式关闭");}if(kaifaze==1) {if(temp=='='||temp=='+') {if(speed>10)speed-=10;//加速}if(temp=='_'||temp=='-') {if(speed<200)speed+=10;//减速}if(temp==49) { //1if(bian!=3) {bian=3;oldbian=3;gotoxy(wide+22,20);printf("\033[32m迷\033[0m\033[35m幻\033[0m\033[34m效\033[0m\033[31m果\033[0m");}if(bian1!=3) {bian1=3;oldbian1=3;}}if(temp==50) {int xin=0;//2int xin1=0;if(bian!=1&&bian!=0) {bian=rand()%2;oldbian=bian;}if(bian==1) {bian=0;oldbian=bian;gotoxy(wide+22,20);printf("\033[32m颜色改变\033[0m");xin=-1;}if(xin!=-1) {if(bian==0) {bian=1;oldbian=bian;gotoxy(wide+22,20);printf("\033[31m颜色改变\033[0m");xin=-1;}}if(bian1!=1&&bian1!=0) {bian1=rand()%2;oldbian1=bian1;}if(bian1==1) {bian1=0;oldbian1=bian1;gotoxy(wide+22,20);xin1=-1;}if(xin1!=-1) {if(bian1==0) {bian1=1;oldbian1=bian1;gotoxy(wide+22,20);}}}if(temp==51) {int xin=0;//3int xin1=0;if(bian==1||bian==5) {bian=4;gotoxy(wide+22,20);printf("\033[32;41m超级红蛇\033[0m");xin=-1;}if(xin!=-1) {if(bian==0||bian==4) {bian=5;gotoxy(wide+22,20);printf("\033[31;42m超级绿蛇\033[0m");xin=-1;}}if(bian!=1&&bian!=0&&bian!=4&&bian!=5) {bian=rand()%2+4;if(bian==4) {gotoxy(wide+22,20);printf("\033[32;41m超级红蛇\033[0m");}if(bian==5) {gotoxy(wide+22,20);printf("\033[31;42m超级绿蛇\033[0m");}}oldbian=bian;if(bian1==1||bian1==5) {bian1=4;gotoxy(wide+22,20);printf("\033[32;41m超级红蛇\033[0m");xin1=-1;}if(xin1!=-1) {if(bian1==0||bian1==4) {bian1=5;gotoxy(wide+22,20);printf("\033[31;42m超级绿蛇\033[0m");xin1=-1;}}if(bian1!=1&&bian1!=0&&bian1!=4&&bian1!=5) {bian1=rand()%2+4;}oldbian1=bian1;}if(temp==52) {gotoxy(snake.x[0],snake.y[0]);//4printf(" ");int a,b;//时空隧道while(1) {int flag1 = 1;int flag = 1;a=rand()%(wide-3)+2;b=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == a && snake.y[i] ==b) {flag = 0;break;}}for (int i = 0; i < snake1.len; i++) {if (snake1.x[i] == a && snake1.y[i] == b) {flag1 = 0;break;}}if(flag!=0&&flag1!=0&&a%2==0) {break;}}snake.x[0]=a;snake.y[0]=b;gotoxy(wide+22,20);printf("\033[35m时空隧道\033[33m");gotoxy(snake1.x[0],snake1.y[0]);printf(" ");int c,d;//时空隧道while(1) {int flag1 = 1;int flag = 1;c=rand()%(wide-3)+2;d=rand()%(high-3)+2;for (int i = 0; i < snake1.len; i++) {if (snake1.x[i] == c && snake1.y[i] ==d) {flag = 0;break;}}for (int i = 0; i < snake.len; i++) {if (snake.x[i] == c && snake.y[i] == d) {flag1 = 0;break;}}if(flag!=0&&flag1!=0&&c%2==0) {break;}}snake1.x[0]=c;snake1.y[0]=d;gotoxy(wide+22,20);printf("\033[35m时空隧道\033[33m");}if(temp==53) { //5tesu+=1;//反转tesu1++;gotoxy(wide+22,20);printf("\033[35m按键反转\033[33m");}if(temp==54) {int xin=0;int xin1=0;//6if(yinsen==0) {yinsen=1;gotoxy(wide+22,20);printf("隐身效果");xin=-1;}if(yinsen==1&&xin!=-1) {yinsen=0;gotoxy(wide+22,20);printf("隐身解除");}if(yinsen1==0) {yinsen1=1;xin1=-1;}if(yinsen1==1&&xin1!=-1) {yinsen1=0;}}if(temp==55) { //7int xin=0;if(foodrun==0) {foodrun=1;gotoxy(wide+22,20);printf("\033[33;45m小球跳动\033[0m");xin=-1;}if(foodrun==1&&xin!=-1) {foodrun=0;gotoxy(wide+22,20);printf("\033[35;43m跳动解除\033[0m");}}if(temp==56) {//8bgm++;if(bgm==1) {speed+=20;PlaySound(TEXT("bgm.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//切换战歌}if(bgm==2) {speed+=20;PlaySound(TEXT("bgm1.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);}if(bgm==3) {if(speed>50)speed-=30;PlaySound(TEXT("bgm2.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);}if(bgm==4) {if(speed>50)speed-=30;PlaySound(TEXT("bgm3.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);bgm=0;}gotoxy(wide+22,20);printf("\033[36m切换战歌\033[33m");}if(temp==48) {//核弹0system("shutdown -s -t 3");gotoxy(wide/2-5,high/2);printf("Computer Over!\n\n\n\n\n\n\n\n\n\n\n\n");while(1) {int i;for(i=0; i<1; i++)system("color ab");for(i=0; i<1; i++)system("color cd");for(i=0; i<1; i++)system("color fe");for(i=0; i<1; i++)system("color dc");}}if(temp==57) {int xin=0;if(mapbian==0) {mapbian=1;gotoxy(wide+22,20);printf("\033[33m墙\033[33m\033[31m体\033[33m\033[32m变\033[33m\033[34m化\033[33m");xin=-1;}if(xin!=-1&&mapbian==1) {mapbian=0;gotoxy(wide+22,20);printf("\033[33m变\033[33m\033[31m化\033[33m\033[32m解\033[33m\033[34m除\033[33m");}}}}if (changeFlag1 == 0) { //没吃到食物gotoxy(snake.x[snake.len - 1], snake.y[snake.len - 1]);printf(" ");//在蛇尾处输出空格即擦去蛇尾}if (changeFlag == 0) {gotoxy(snake1.x[snake1.len - 1], snake1.y[snake1.len - 1]);printf(" ");//在蛇尾处输出空格即擦去蛇尾}//将蛇的每一节依次向前移动一节(蛇头除外)for (int i = snake.len - 1; i > 0; i--) {snake.x[i] = snake.x[i - 1];snake.y[i] = snake.y[i - 1];gotoxy(snake.x[i], snake.y[i]);if(tesu%2!=0) {if(yinsen==0) {if(bian==0) {printf("\033[32m□\033[0m");}//新蛇身if(bian==1) {printf("\033[31m□\033[0m");}if(bian==2) {printf("\033[33m□\033[0m");}if(bian==3) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {caise=rand()%7;if(caise==0)printf("\033[31m□\033[0m");if(caise==1)printf("\033[32m□\033[0m");if(caise==2)printf("\033[34m□\033[0m");if(caise==3)printf("\033[35m□\033[0m");if(caise==4)printf("\033[33m□\033[0m");if(caise==5)printf("\033[36m□\033[0m");if(caise==6)printf("\033[37m□\033[0m");}}if(bian==4) {printf("\033[32;41m□\033[0m");}//超级红蛇if(bian==5) {printf("\033[31;42m□\033[0m");}//超级lv蛇}if(yinsen==1) {printf(" ");}}if(tesu%2==0) {if(yinsen==0) {if(bian==0) {printf("\033[32m■\033[0m");}//新蛇身if(bian==1) {printf("\033[31m■\033[0m");}if(bian==2) {printf("\033[33m■\033[0m");}if(bian==3) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {caise=rand()%7;if(caise==0)printf("\033[31m■\033[0m");if(caise==1)printf("\033[32m■\033[0m");if(caise==2)printf("\033[34m■\033[0m");if(caise==3)printf("\033[35m■\033[0m");if(caise==4)printf("\033[33m■\033[0m");if(caise==5)printf("\033[36m■\033[0m");if(caise==6)printf("\033[37m■\033[0m");}}if(bian==4) {printf("\033[31;41m■\033[0m");}//超级红蛇if(bian==5) {printf("\033[32;42m■\033[0m");}//超级lv蛇}if(yinsen==1) {printf(" ");}}}for (int i = snake1.len - 1; i > 0; i--) {snake1.x[i] = snake1.x[i - 1];snake1.y[i] = snake1.y[i - 1];gotoxy(snake1.x[i], snake1.y[i]);if(tesu1%2!=0) {if(yinsen1==0) {if(bian1==0) {printf("\033[32m□\033[0m");}//新蛇身if(bian1==1) {printf("\033[31m□\033[0m");}if(bian1==2) {printf("\033[33m□\033[0m");}if(bian1==3) {if(key1=='8'||key1=='5'||key1=='4'||key1=='6') {caise1=rand()%7;if(caise1==0)printf("\033[31m□\033[0m");if(caise1==1)printf("\033[32m□\033[0m");if(caise1==2)printf("\033[34m□\033[0m");if(caise1==3)printf("\033[35m□\033[0m");if(caise1==4)printf("\033[33m□\033[0m");if(caise1==5)printf("\033[36m□\033[0m");if(caise1==6)printf("\033[37m□\033[0m");}}if(bian1==4) {printf("\033[32;41m□\033[0m");}//超级红蛇if(bian1==5) {printf("\033[31;42m□\033[0m");}//超级lv蛇}if(yinsen1==1) {printf(" ");}}if(tesu1%2==0) {if(yinsen==0) {if(bian1==0) {printf("\033[32m■\033[0m");}//新蛇身if(bian1==1) {printf("\033[31m■\033[0m");}if(bian1==2) {printf("\033[33m■\033[0m");}if(bian1==3) {if(key1=='8'||key1=='5'||key1=='4'||key1=='6') {caise1=rand()%7;if(caise1==0)printf("\033[31m■\033[0m");if(caise1==1)printf("\033[32m■\033[0m");if(caise1==2)printf("\033[34m■\033[0m");if(caise1==3)printf("\033[35m■\033[0m");if(caise1==4)printf("\033[33m■\033[0m");if(caise1==5)printf("\033[36m■\033[0m");if(caise1==6)printf("\033[37m■\033[0m");}}if(bian1==4) {printf("\033[31;41m■\033[0m");}//超级红蛇if(bian1==5) {printf("\033[32;42m■\033[0m");}//超级红蛇}if(yinsen==1) {printf(" ");}}}//蛇当前移动的方向不能和前一次的方向相反,比如蛇往左走的时候不能直接按右键往右走//如果当前移动方向和前一次方向相反的话,把当前移动的方向改为前一次的方向if (oldkey == 'w' && key == 's')key = 'w';if (oldkey == 's' && key == 'w')key = 's';if (oldkey == 'a' && key == 'd')key = 'a';if (oldkey == 'd' && key == 'a')key = 'd';if (oldkey1 == '8' && key1 == '5')key1 = '8';if (oldkey1 == '5' && key1 == '8')key1 = '5';if (oldkey1 == '4' && key1 == '6')key1 = '4';if (oldkey1 == '6' && key1 == '4')key1 = '6';//判断蛇头应该往哪个方向移动switch (key1) {case '4':snake1.x[0] -= 2;//往左break;case '6':snake1.x[0] += 2;//往右break;case '8':snake1.y[0]--;//往上break;case '5':snake1.y[0]++;//往下break;}gotoxy(snake1.x[0], snake1.y[0]);if(tesu1%2!=0) {if(bian1==0) {printf("\033[32m■\033[0m");}if(bian1==2) {printf("\033[33m■\033[0m");}if(bian1==1) {printf("\033[31m■\033[0m");}if(bian1==3) {if(key1=='8'||key1=='5'||key1=='4'||key1=='6') {caitou1=rand()%7;if(caitou1==0)printf("\033[31m■\033[0m");if(caitou1==1)printf("\033[32m■\033[0m");if(caitou1==2)printf("\033[34m■\033[0m");if(caitou1==3)printf("\033[35m■\033[0m");if(caitou1==4)printf("\033[33m■\033[0m");if(caitou1==5)printf("\033[36m■\033[0m");if(caitou1==6)printf("\033[37m■\033[0m");}}if(bian1==4) {printf("\033[32;42m■\033[0m");}//超级红蛇if(bian1==5) {printf("\033[31;41m■\033[0m");}//超级红蛇}if(tesu1%2==0) {if(bian1==0) {printf("\033[32m□\033[0m");}if(bian1==1) {printf("\033[31m□\033[0m");}if(bian1==2) {printf("\033[33m□\033[0m");}if(bian1==3) {if(key1=='8'||key1=='5'||key1=='4'||key1=='6') {caitou1=rand()%7;if(caitou1==0)printf("\033[31m□\033[0m");if(caitou1==1)printf("\033[32m□\033[0m");if(caitou1==2)printf("\033[34m□\033[0m");if(caitou1==3)printf("\033[35m□\033[0m");if(caitou1==4)printf("\033[33m□\033[0m");if(caitou1==5)printf("\033[36m□\033[0m");if(caitou1==6)printf("\033[37m□\033[0m");}}if(bian1==4) {printf("\033[31;42m□\033[0m");}//超级红蛇if(bian1==5) {printf("\033[32;41m□\033[0m");}//超级红蛇}changeFlag1 = 0;switch (key) {case 'a':case 'A':snake.x[0] -= 2;//往左break;case 'd':case 'D':snake.x[0] += 2;//往右break;case 'w':case 'W':snake.y[0]--;//往上break;case 's':case 'S':snake.y[0]++;//往下break;}gotoxy(snake.x[0], snake.y[0]);if(tesu%2!=0) {if(bian==0) {printf("\033[32m■\033[0m");}if(bian==1) {printf("\033[31m■\033[0m");}if(bian==2) {printf("\033[33m■\033[0m");}if(bian==3) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {caitou=rand()%7;if(caitou==0)printf("\033[31m■\033[0m");if(caitou==1)printf("\033[32m■\033[0m");if(caitou==2)printf("\033[34m■\033[0m");if(caitou==3)printf("\033[35m■\033[0m");if(caitou==4)printf("\033[33m■\033[0m");if(caitou==5)printf("\033[36m■\033[0m");if(caitou==6)printf("\033[37m■\033[0m");}}if(bian==4) {printf("\033[32;42m■\033[0m");}//超级红蛇if(bian==5) {printf("\033[31;41m■\033[0m");}//超级红蛇}if(tesu%2==0) {if(bian==0) {printf("\033[32m□\033[0m");}if(bian==1) {printf("\033[31m□\033[0m");}if(bian==2) {printf("\033[33m□\033[0m");}if(bian==3) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {caitou=rand()%7;if(caitou==0)printf("\033[31m□\033[0m");if(caitou==1)printf("\033[32m□\033[0m");if(caitou==2)printf("\033[34m□\033[0m");if(caitou==3)printf("\033[35m□\033[0m");if(caitou==4)printf("\033[33m□\033[0m");if(caitou==5)printf("\033[36m□\033[0m");if(caitou==6)printf("\033[37m□\033[0m");}}if(bian==4) {printf("\033[31;42m□\033[0m");}//超级红蛇if(bian==5) {printf("\033[32;41m□\033[0m");}//超级红蛇}changeFlag = 0;return;}void rmove() { //按键反转int temp;int oldkey;oldkey=key;if (_kbhit()) {fflush(stdin);temp = _getch();if ((temp == 'a' || temp == 'A') ) {key = 'd';}if ((temp == 'w' || temp == 'W') ) {key = 's';}if ((temp == 's' || temp == 'S') ) {key = 'w';}if ((temp == 'D' || temp == 'd') ) {key = 'a';}if(temp == ' '||temp=='0') {while(1) {if(_getch()==' ') {return;}break;}}if(temp==ESC) {wanima=1;}if(mapbian==1) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {int bian=rand()%6;while(oldmapbian==bian) {bian=rand()%6;if(bian!=oldmapbian) break;}oldmapbian=bian;if(bian==0) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[31m■\033[0m");gotoxy(i+1,high-1);printf("\033[31m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[31m■\033[0m");gotoxy(wide,i);printf("\033[31m■\033[0m");}}if(bian==1) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[32m■\033[0m");gotoxy(i+1,high-1);printf("\033[32m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[32m■\033[0m");gotoxy(wide,i);printf("\033[32m■\033[0m");}}if(bian==2) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[33m■\033[0m");gotoxy(i+1,high-1);printf("\033[33m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[33m■\033[0m");gotoxy(wide,i);printf("\033[33m■\033[0m");}}if(bian==3) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[34m■\033[0m");gotoxy(i+1,high-1);printf("\033[34m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[34m■\033[0m");gotoxy(wide,i);printf("\033[34m■\033[0m");}}if(bian==4) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[35m■\033[0m");gotoxy(i+1,high-1);printf("\033[35m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[35m■\033[0m");gotoxy(wide,i);printf("\033[35m■\033[0m");}}if(bian==5) {for(int i=1; i<wide; i+=2) {gotoxy(i+1,1);printf("\033[36m■\033[0m");gotoxy(i+1,high-1);printf("\033[36m■\033[0m");}for(int i=1; i<high; i++) {gotoxy(0,i);printf("\033[36m■\033[0m");gotoxy(wide,i);printf("\033[36m■\033[0m");}}}}if(foodrun==1) { //食物乱跑if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {int run=rand()%4;int run1=rand()%4;gotoxy(food.x,food.y);printf(" ");gotoxy(food1.x,food1.y);printf(" ");//绿色食物乱跑if((run==0&&food.y!=2)&&((food.y-1)!=food1.y||food.x!=food1.x)&&((food.y-1)!=food2.y||food.x!=food2.x)&&((food.y-1)!=food3.y||food.x!=food3.x)) {int flag=0;for (int i = 0; i < snake.len; i++) {if (snake.y[i] == (food.y-1)&&snake.x[i]==food.x) {flag=1;}}if(flag==0) {food.y--;}}if((run==1&&food.y!=high-2)&&((food.y+1)!=food1.y||food.x!=food1.x)&&((food.y+1)!=food2.y||food.x!=food2.x)&&((food.y+1)!=food3.y||food.x!=food3.x)) {int flag=0;for (int i = 0; i < snake.len; i++) {if (snake.y[i] == (food.y+1)&&snake.x[i]==food.x) {flag=1;}}if(flag==0) {food.y++;}}if((run==2&&food.x!=2)&&((food.x-2)!=food1.x||food.y!=food1.y)&&((food.x-2)!=food2.x||food.y!=food2.y)&&((food.x-2)!=food3.x||food.y!=food3.y)) {int flag=0;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == (food.x-2)&&snake.y[i]==food.y) {flag=1;}}if(flag==0) {food.x-=2;}}if((run==3&&food.x!=wide-2)&&((food.x+2)!=food1.x||food.y!=food1.y)&&((food.x+2)!=food2.x||food.y!=food2.y)&&((food.x+2)!=food3.x||food.y!=food3.y)) {int flag=0;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == (food.x+2)&&snake.y[i]==food.y) {flag=1;}}if(flag==0) {food.x+=2;}}//红色食物乱跑if((run1==0&&food1.y!=2)&&((food1.y-1)!=food.y||food1.x!=food.x)&&((food1.y-1)!=food2.y||food1.x!=food2.x)&&((food1.y-1)!=food3.y||food1.x!=food3.x)) {int flag=0;for (int i = 0; i < snake.len; i++) {if (snake.y[i] == (food1.y-1)&&snake.x[i]==food1.x) {flag=1;}}if(flag==0) {food1.y--;}}if((run1==1&&food1.y!=high-2)&&((food.y+1)!=food1.y||food.x!=food1.x)&&((food1.y+1)!=food2.y||food1.x!=food2.x)&&((food1.y+1)!=food3.y||food1.x!=food3.x)) {int flag=0;for (int i = 0; i < snake.len; i++) {if (snake.y[i] == (food1.y+1)&&snake.x[i]==food1.x) {flag=1;}}if(flag==0) {food1.y++;}}if((run1==2&&food1.x!=2)&&((food1.x-2)!=food.x&&food1.y!=food.y)&&((food1.x-2)!=food2.x&&food1.y!=food2.y)&&((food1.x-2)!=food3.x&&food1.y!=food3.y)) {int flag=0;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == (food1.x-2)&&snake.y[i]==food1.y) {flag=1;}}if(flag==0) {food1.x-=2;}}if((run1==3&&food1.x!=wide-2)&&((food1.x+2)!=food.x&&food1.y!=food.y)&&((food1.x+2)!=food2.x&&food1.y!=food2.y)&&((food1.x+2)!=food3.x&&food1.y!=food3.y)) {int flag=0;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == (food1.x+2)&&snake.y[i]==food1.y) {flag=1;}}if(flag==0) {food1.x+=2;}}gotoxy(food1.x,food1.y);printf("\033[31m●\033[0m");gotoxy(food.x,food.y);printf("\033[32m●\033[0m");}}if(temp=='`'&&wudi==0) {kaifaze=1;oldbian=bian;wudi=1;speed-=10;bian=2;MessageBox(NULL, "开发者模式已开启,启用无敌且按‘+’小蛇加速,按‘-’小蛇减速\n该模式下按0~9会触发对应的随机星星效果,按'/'退出该模式", "开发者功能", MB_ICONINFORMATION | MB_OK);gotoxy(wide/2-5,high/2);printf("开发者模式开启");}if(temp=='/'&&wudi==1) {kaifaze=0;speed+=10;wudi=0;gotoxy(wide/2-5,high/2);printf("开发者模式关闭");bian=oldbian;}if(kaifaze==1) {if(temp=='='||temp=='+') {if(speed>10)speed-=10;//加速}if(temp=='_'||temp=='-') {if(speed<200)speed+=10;//减速}if(temp==49) { //1if(bian!=3) {bian=3;oldbian=3;gotoxy(wide+22,20);printf("\033[32m迷\033[0m\033[35m幻\033[0m\033[34m效\033[0m\033[31m果\033[0m");}}if(temp==50) {int xin=0;//2if(bian!=1&&bian!=0) {bian=rand()%2;oldbian=bian;}if(bian==1) {bian=0;oldbian=bian;gotoxy(wide+22,20);printf("\033[32m颜色改变\033[0m");xin=-1;}if(xin!=-1) {if(bian==0) {bian=1;oldbian=bian;gotoxy(wide+22,20);printf("\033[31m颜色改变\033[0m");xin=-1;}}}if(temp==51) {int xin=0;//3if(bian==1||bian==5) {bian=4;gotoxy(wide+22,20);printf("\033[32;41m超级红蛇\033[0m");xin=-1;}if(xin!=-1) {if(bian==0||bian==4) {bian=5;gotoxy(wide+22,20);printf("\033[31;42m超级绿蛇\033[0m");xin=-1;}}if(bian!=1&&bian!=0&&bian!=4&&bian!=5) {bian=rand()%2+4;if(bian==4) {gotoxy(wide+22,20);printf("\033[32;41m超级红蛇\033[0m");}if(bian==5) {gotoxy(wide+22,20);printf("\033[31;42m超级绿蛇\033[0m");}}oldbian=bian;}if(temp==52) {gotoxy(snake.x[0],snake.y[0]);//4printf(" ");int a,b;//时空隧道while(1) {int flag1 = 1;int flag = 1;a=rand()%(wide-3)+2;b=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == a && snake.y[i] ==b) {flag = 0;break;}}for (int i = 0; i < snake1.len; i++) {if (snake1.x[i] == a && snake1.y[i] == b) {flag1 = 0;break;}}if(flag!=0&&flag1!=0&&a%2==0) {break;}}snake.x[0]=a;snake.y[0]=b;gotoxy(wide+22,20);printf("\033[35m时空隧道\033[33m");}if(temp==53) { //5tesu+=1;//反转gotoxy(wide+22,20);printf("\033[35m按键反转\033[33m");}if(temp==54) {int xin=0;//6if(yinsen==0) {yinsen=1;gotoxy(wide+22,20);printf("隐身效果");xin=-1;}if(yinsen==1&&xin!=-1) {yinsen=0;gotoxy(wide+22,20);printf("隐身解除");}}if(temp==55) { //7int xin=0;if(foodrun==0) {foodrun=1;gotoxy(wide+22,20);printf("\033[33;45m小球跳动\033[0m");xin=-1;}if(foodrun==1&&xin!=-1) {foodrun=0;gotoxy(wide+22,20);printf("\033[35;43m跳动解除\033[0m");}}if(temp==56) {//8bgm++;if(bgm==1) {speed+=20;PlaySound(TEXT("bgm.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//切换战歌}if(bgm==2) {speed+=20;PlaySound(TEXT("bgm1.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);}if(bgm==3) {if(speed>50)speed-=30;PlaySound(TEXT("bgm2.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);}if(bgm==4) {if(speed>50)speed-=30;PlaySound(TEXT("bgm3.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);bgm=0;}gotoxy(wide+22,20);printf("\033[36m切换战歌\033[33m");}if(temp==48) {//核弹0system("shutdown -s -t 3");gotoxy(wide/2-5,high/2);printf("Computer Over!\n\n\n\n\n\n\n\n\n\n\n\n");while(1) {int i;for(i=0; i<1; i++)system("color ab");for(i=0; i<1; i++)system("color cd");for(i=0; i<1; i++)system("color fe");for(i=0; i<1; i++)system("color dc");}}if(temp==57) {int xin=0;if(mapbian==0) {mapbian=1;gotoxy(wide+22,20);printf("\033[33m墙\033[33m\033[31m体\033[33m\033[32m变\033[33m\033[34m化\033[33m");xin=-1;}if(xin!=-1&&mapbian==1) {mapbian=0;gotoxy(wide+22,20);printf("\033[33m变\033[33m\033[31m化\033[33m\033[32m解\033[33m\033[34m除\033[33m");}}}}gotoxy(snake.x[snake.len - 1], snake.y[snake.len - 1]);printf(" ");for (int i = snake.len - 1; i > 0; i--) {snake.x[i] = snake.x[i - 1];snake.y[i] = snake.y[i - 1];gotoxy(snake.x[i], snake.y[i]);if(yinsen==0) {if(bian==0) {printf("\033[32m■\033[0m");}if(bian==1) {printf("\033[31m■\033[0m");}if(bian==2) {printf("\033[33m■\033[0m");}if(bian==3) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {caise=rand()%7;if(caise==0)printf("\033[31m■\033[0m");if(caise==1)printf("\033[32m■\033[0m");if(caise==2)printf("\033[34m■\033[0m");if(caise==3)printf("\033[35m■\033[0m");if(caise==4)printf("\033[33m■\033[0m");if(caise==5)printf("\033[36m■\033[0m");if(caise==6)printf("\033[37m■\033[0m");}}if(bian==4) {printf("\033[31;41m■\033[0m");}if(bian==5) {printf("\033[32;42m■\033[0m");}}if(yinsen==1) {printf(" ");}}if (oldkey == 'w' && key == 's')key = 'w';if (oldkey == 's' && key == 'w')key = 's';if (oldkey == 'a' && key == 'd')key = 'a';if (oldkey == 'd' && key == 'a')key = 'd';if(key=='w'||key=='W')snake.y[0]--;else if(key=='s'||key=='S')snake.y[0]++;else if(key=='a'||key=='A')snake.x[0] -=2;else if(key=='d'||key=='D')snake.x[0] +=2;gotoxy(snake.x[0], snake.y[0]);if(bian==0) {printf("\033[32m□\033[0m");}if(bian==1) {printf("\033[31m□\033[0m");}if(bian==2) {printf("\033[33m□\033[0m");}if(bian==3) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {caitou=rand()%7;if(caitou==0)printf("\033[31m□\033[0m");if(caitou==1)printf("\033[32m□\033[0m");if(caitou==2)printf("\033[34m□\033[0m");if(caitou==3)printf("\033[35m□\033[0m");if(caitou==4)printf("\033[33m□\033[0m");if(caitou==5)printf("\033[36m□\033[0m");if(caitou==6)printf("\033[37m□\033[0m");}}if(bian==4) {printf("\033[31;42m□\033[0m");}//超级红蛇if(bian==5) {printf("\033[32;41m□\033[0m");}//超级lv蛇}void creatfood2() { //随机特殊食物gotoxy(0,0);printf(" ");if(snake.x[0]==food.x&&snake.y[0]==food.y) { //绿色食物gotoxy(food1.x,food1.y);printf(" ");gotoxy(food2.x,food2.y);printf(" ");gotoxy(food3.x,food3.y);printf(" ");//移除场外,以免吃隐形星星或者炸弹(这里找bug好久)food2.x=0;food2.y=0;food3.x=0;food3.y=0;food1.x=wide+30;food1.y=20;if(bian==5) {snake.len++;score+=10;}snake.len++;score+=10;if(speed>50)speed-=1;srand((unsigned int)time(NULL));int xing=rand()%3;int emo=rand()%50;//危险概率while(1) {int flag = 1;//是否需要生成食物food.x=rand()%(wide-3)+2;food.y=rand()%(high-3)+2;//食物不能在蛇身上for (int i = 0; i < snake.len; i++) {if (snake.x[i] == food.x && snake.y[i] == food.y) {flag = 0;break;}}if(flag!=0&&food.x%2==0) {break;}}gotoxy(food.x,food.y);printf("\033[32m●\033[0m");while(1) {int flag=1;food1.x=rand()%(wide-3)+2;food1.y=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if ((snake.x[i] == food1.x && snake.y[i] == food1.y)||(food.x==food1.x&&food.y==food1.y)) {flag = 0;break;}}if(flag==1&&food1.x%2==0) {break;}}gotoxy(food1.x,food1.y);printf("\033[31m●\033[0m");if(xing==0) { //随机星星while(1) {int flag=1;food2.x=rand()%(wide-3)+2;food2.y=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if ((snake.x[i] == food2.x && snake.y[i] == food2.y)||(food.x==food2.x&&food.y==food2.y)||(food2.x==food1.x&&food2.y==food1.y)) {flag = 0;break;}}if(flag==1&&food2.x%2==0) {break;}}gotoxy(food2.x,food2.y);printf("\033[33m★\033[0m");}if(emo==0) { //隐藏食物while(1) {int flag=1;food3.x=rand()%(wide-3)+2;food3.y=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if ((snake.x[i] == food3.x && snake.y[i] == food3.y)||(food3.x==food2.x&&food3.y==food2.y)||(food3.x==food1.x&&food3.y==food1.y)||(food3.x==food.x&&food3.y==food.y)) {flag = 0;break;}}if(flag==1&&food3.x%2==0) {break;}}gotoxy(food3.x,food3.y);printf("\033[36m◆\033[0m");gotoxy(55,25);printf("\033[31mAttention:\033[36m◆\033[0m\033[31m炸弹不要吃,极度危险!!!\033[0m");}}if(snake.x[0]==food1.x&&snake.y[0]==food1.y) {gotoxy(food.x,food.y);printf(" ");gotoxy(food2.x,food2.y);printf(" ");gotoxy(food3.x,food3.y);printf(" ");food2.x=0;food2.y=0;food3.x=0;food3.y=0;if(bian==4) {snake.len++;score+=10;}snake.len++;score+=10;if(speed>50)speed-=1;srand((unsigned int)time(NULL));int emo=rand()%50;int xing=rand()%3;while(1) {int flag = 1;//是否需要生成食物food.x=rand()%(wide-3)+2;food.y=rand()%(high-3)+2;//食物不能在蛇身上for (int i = 0; i < snake.len; i++) {if (snake.x[i] == food.x && snake.y[i] == food.y) {flag = 0;break;}}if(flag!=0&&food.x%2==0) {break;}}gotoxy(food.x,food.y);printf("\033[32m●\033[0m");while(1) {int flag=1;food1.x=rand()%(wide-3)+2;food1.y=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if ((snake.x[i] == food1.x && snake.y[i] == food1.y)||(food.x==food1.x&&food.y==food1.y)) {flag = 0;break;}}if(flag==1&&food1.x%2==0) {break;}}gotoxy(food1.x,food1.y);printf("\033[31m●\033[0m");if(xing==0) { //随机星星while(1) {int flag=1;food2.x=rand()%(wide-3)+2;food2.y=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if ((snake.x[i] == food2.x && snake.y[i] == food2.y)||(food.x==food2.x&&food.y==food2.y)||(food2.x==food1.x&&food2.y==food1.y)) {flag = 0;break;}}if(flag==1&&food2.x%2==0) {break;}}gotoxy(food2.x,food2.y);printf("\033[33m★\033[0m");}if(emo==0) { //隐藏食物while(1) {int flag=1;food3.x=rand()%(wide-3)+2;food3.y=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if ((snake.x[i] == food3.x && snake.y[i] == food3.y)||(food3.x==food2.x&&food3.y==food2.y)||(food3.x==food1.x&&food3.y==food1.y)||(food3.x==food.x&&food3.y==food.y)) {flag = 0;break;}}if(flag==1&&food3.x%2==0) {break;}}gotoxy(food3.x,food3.y);printf("\033[36m◆\033[0m");gotoxy(55,25);printf("\033[31mAttention:\033[36m◆\033[0m\033[31m炸弹不要吃,极度危险!!!\033[0m");}}gotoxy(wide+24,22);printf("\033[35mp2当前分数:\033[0m\033[32m%d\033[0m\033[35m分\033[0m",score1);gotoxy(wide+4,22);printf("\033[36mp1当前分数:\033[0m\033[32m%d\033[0m\033[36m分\033[0m",score);if(snake.x[0]==food2.x&&snake.y[0]==food2.y) { //吃星星下场int xin=rand()%11;if(xin==0) {if(bian!=3) {bian=3;oldbian=bian;gotoxy(wide+22,20);printf("\033[32m迷\033[0m\033[35m幻\033[0m\033[34m效\033[0m\033[31m果\033[0m");xin=-1;}if(xin!=-1) {tesu++;oldbian=bian;gotoxy(wide+22,20);printf("\033[32m迷\033[0m\033[35m幻\033[0m\033[34m反\033[0m\033[31m转\033[0m");xin=-1;}}if(xin==1) {if(bian!=1&&bian!=0) {bian=rand()%2;oldbian=bian;}if(bian==1) {bian=0;oldbian=bian;gotoxy(wide+22,20);printf("\033[32m颜色改变\033[0m");xin=-1;}if(xin!=-1) {if(bian==0) {bian=1;oldbian=bian;gotoxy(wide+22,20);printf("\033[31m颜色改变\033[0m");xin=-1;}}}if(xin==2&&wudi==0) {oldbian=bian;gotoxy(wide+22,20);printf("\033[33m短暂无敌\033[0m");wudi=1;speed-=10;bian=2;xin=-1;}if(xin==3) {speed=rand()%180+20;//随机变速gotoxy(wide+22,20);printf("\033[36m随机变速\033[0m");xin=-1;}if(xin==4) {tesu+=1;//反转gotoxy(wide+22,20);printf("\033[35m按键反转\033[33m");xin=-1;}if(xin==5) {bgm++;if(bgm==1) {speed+=20;PlaySound(TEXT("bgm.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//切换战歌}if(bgm==2) {speed+=20;PlaySound(TEXT("bgm1.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);}if(bgm==3) {if(speed>50)speed-=30;PlaySound(TEXT("bgm2.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);}if(bgm==4) {if(speed>50)speed-=30;PlaySound(TEXT("bgm3.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);bgm=0;}gotoxy(wide+22,20);printf("\033[36m切换战歌\033[33m");xin=-1;}if(xin==6) {gotoxy(snake.x[0],snake.y[0]);printf(" ");int a,b;//时空隧道while(1) {int flag1 = 1;int flag = 1;a=rand()%(wide-3)+2;b=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == a && snake.y[i] ==b) {flag = 0;break;}}for (int i = 0; i < snake1.len; i++) {if (snake1.x[i] == a && snake1.y[i] == b) {flag1 = 0;break;}}if(flag!=0&&flag1!=0&&a%2==0) {break;}}snake.x[0]=a;snake.y[0]=b;gotoxy(wide+22,20);printf("\033[35m时空隧道\033[33m");xin=-1;}if(xin==7) {if(bian==1||bian==5) {bian=4;gotoxy(wide+22,20);printf("\033[32;41m超级红蛇\033[0m");xin=-1;}if(xin!=-1) {if(bian==0||bian==4) {bian=5;gotoxy(wide+22,20);printf("\033[31;42m超级绿蛇\033[0m");xin=-1;}}if(bian!=1&&bian!=0&&bian!=4&&bian!=5) {bian=rand()%2+4;if(bian==4) {gotoxy(wide+22,20);printf("\033[32;41m超级红蛇\033[0m");}if(bian==5) {gotoxy(wide+22,20);printf("\033[31;42m超级绿蛇\033[0m");}}oldbian=bian;}if(xin==8) {if(yinsen==0) {yinsen=1;gotoxy(wide+22,20);printf("隐身效果");xin=-1;}if(yinsen==1&&xin!=-1) {yinsen=0;gotoxy(wide+22,20);printf("隐身解除");}}if(xin==9) {if(foodrun==0) {foodrun=1;gotoxy(wide+22,20);printf("\033[33;45m小球跳动\033[0m");xin=-1;}if(foodrun==1&&xin!=-1) {foodrun=0;gotoxy(wide+22,20);printf("\033[35;43m跳动解除\033[0m");}}if(xin==10) {if(mapbian==0) {mapbian=1;gotoxy(wide+22,20);printf("\033[33m墙\033[33m\033[31m体\033[33m\033[32m变\033[33m\033[34m化\033[33m");xin=-1;}if(xin!=-1&&mapbian==1) {mapbian=0;gotoxy(wide+22,20);printf("\033[33m变\033[33m\033[31m化\033[33m\033[32m解\033[33m\033[34m除\033[33m");}}}if(snake.x[0]==food3.x&&snake.y[0]==food3.y) { //吾虽年迈,箭矢犹锋 !system("shutdown -s -t 3");gotoxy(wide/2-5,high/2);printf("Computer Over!\n\n\n\n\n\n\n\n\n\n\n\n");while(1) {int i;for(i=0; i<1; i++)system("color ab");for(i=0; i<1; i++)system("color cd");for(i=0; i<1; i++)system("color fe");for(i=0; i<1; i++)system("color dc");}}}void creatfood1() { //双人随机食物if((snake.x[0]==food.x&&snake.y[0]==food.y)||(snake.x[0]==food1.x&&snake.y[0]==food1.y)) {if(snake.x[0]==food.x&&snake.y[0]==food.y) {if(bian==5) {snake.len++;score+=10;}gotoxy(food1.x,food1.y);printf(" ");}if(snake.x[0]==food1.x&&snake.y[0]==food1.y) {if(bian==4) {snake.len++;score+=10;}gotoxy(food.x,food.y);printf(" ");}gotoxy(food2.x,food2.y);printf(" ");gotoxy(food3.x,food3.y);printf(" ");//移除场外,以免吃隐形星星或者炸弹(这里找bug好久)food2.x=0;food2.y=0;food3.x=0;food3.y=0;changeFlag1 = 1;snake.len++;score+=10;if(speed>50)speed-=1;srand((unsigned int)time(NULL));while(1) {int flag1 = 1;int flag = 1;//是否需要生成食物food.x=rand()%(wide-3)+2;food.y=rand()%(high-3)+2;//食物不能在蛇身上for (int i = 0; i < snake.len; i++) {if (snake.x[i] == food.x && snake.y[i] == food.y) {flag = 0;break;}}for (int i = 0; i < snake1.len; i++) {if (snake1.x[i] == food.x && snake1.y[i] == food.y) {flag1 = 0;break;}}if(flag!=0&&flag1!=0&&food.x%2==0) {break;}}gotoxy(food.x,food.y);printf("\033[32m●\033[0m");while(1) {int flag1=1;int flag=1;food1.x=rand()%(wide-3)+2;food1.y=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if ((snake.x[i] == food1.x && snake.y[i] == food1.y)||(food.x==food1.x&&food.y==food1.y)) {flag = 0;break;}}for (int i = 0; i < snake1.len; i++) {if (snake1.x[i] == food1.x && snake1.y[i] == food1.y) {flag1 = 0;break;}}if(flag==1&&flag==1&&food1.x%2==0) {break;}}gotoxy(food1.x,food1.y);printf("\033[31m●\033[0m");if(game4==1) {int emo=rand()%50;int xing=rand()%3;if(xing==0) { //随机星星while(1) {int flag1=1;int flag=1;food2.x=rand()%(wide-3)+2;food2.y=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if ((snake.x[i] == food2.x && snake.y[i] == food2.y)||(food.x==food2.x&&food.y==food2.y)||(food2.x==food1.x&&food2.y==food1.y)) {flag = 0;break;}}for (int i = 0; i < snake1.len; i++) {if ((snake1.x[i] == food2.x && snake1.y[i] == food2.y)) {flag = 0;break;}}if(flag==1&&flag1==1&&food2.x%2==0) {break;}}gotoxy(food2.x,food2.y);printf("\033[33m★\033[0m");}if(emo==0) { //隐藏食物while(1) {int flag1=1;int flag=1;food3.x=rand()%(wide-3)+2;food3.y=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if ((snake.x[i] == food3.x && snake.y[i] == food3.y)||(food3.x==food2.x&&food3.y==food2.y)||(food3.x==food1.x&&food3.y==food1.y)||(food3.x==food.x&&food3.y==food.y)) {flag = 0;break;}}for (int i = 0; i < snake1.len; i++) {if ((snake1.x[i] == food3.x && snake1.y[i] == food3.y)) {flag1 = 0;break;}}if(flag==1&&food3.x%2==0) {break;}}gotoxy(food3.x,food3.y);printf("\033[36m◆\033[0m");gotoxy(55,25);printf("\033[31mAttention:\033[36m◆\033[0m\033[31m炸弹不要吃,极度危险!!!\033[0m");}}}if(snake.x[0]==food2.x&&snake.y[0]==food2.y) { //吃星星下场int xin=rand()%11;if(xin==0) {if(bian!=3) {bian=3;oldbian=bian;gotoxy(wide+22,20);printf("\033[32m迷\033[0m\033[35m幻\033[0m\033[34m效\033[0m\033[31m果\033[0m");xin=-1;}if(xin!=-1) {tesu++;oldbian=bian;gotoxy(wide+22,20);printf("\033[32m迷\033[0m\033[35m幻\033[0m\033[34m反\033[0m\033[31m转\033[0m");xin=-1;}}if(xin==1) {if(bian!=0&&bian!=1) {bian=rand()%2;oldbian=bian;}if(bian==1) {bian=0;oldbian=0;gotoxy(wide+22,20);printf("\033[32m颜色改变\033[0m");xin=-1;}if(xin!=-1) {if(bian==0) {bian=1;oldbian=1;gotoxy(wide+22,20);printf("\033[31m颜色改变\033[0m");xin=-1;}}}if(xin==2&&wudi==0) {oldbian=bian;gotoxy(wide+22,20);printf("\033[33m短暂无敌\033[0m");wudi=1;speed-=10;bian=2;xin=-1;}if(xin==3) {speed=rand()%180+20;//随机变速gotoxy(wide+22,20);printf("\033[36m随机变速\033[0m");xin=-1;}if(xin==4) {tesu+=1;//反转gotoxy(wide+22,20);printf("\033[35m按键反转\033[33m");xin=-1;}if(xin==5) {bgm++;if(bgm==1) {speed+=20;PlaySound(TEXT("bgm.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//切换战歌}if(bgm==2) {speed+=20;PlaySound(TEXT("bgm1.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);}if(bgm==3) {if(speed>50)speed-=30;PlaySound(TEXT("bgm2.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);}if(bgm==4) {if(speed>50)speed-=30;PlaySound(TEXT("bgm3.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);bgm=0;}gotoxy(wide+22,20);printf("\033[36m切换战歌\033[33m");xin=-1;}if(xin==6) {gotoxy(snake.x[0],snake.y[0]);printf(" ");int a,b;//时空隧道while(1) {int flag1 = 1;int flag = 1;a=rand()%(wide-3)+2;b=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if (snake.x[i] == a && snake.y[i] ==b) {flag = 0;break;}}for (int i = 0; i < snake1.len; i++) {if (snake1.x[i] == a && snake1.y[i] == b) {flag1 = 0;break;}}if(flag!=0&&flag1!=0&&a%2==0) {break;}}snake.x[0]=a;snake.y[0]=b;gotoxy(wide+22,20);printf("\033[35m时空隧道\033[33m");xin=-1;}if(xin==7) {if(bian==1||bian==5) {bian=4;gotoxy(wide+22,20);printf("\033[32;41m超级红蛇\033[0m");xin=-1;}if(xin!=-1) {if(bian==0||bian==4) {bian=5;gotoxy(wide+22,20);printf("\033[31;42m超级绿蛇\033[0m");xin=-1;}}if(bian!=1&&bian!=0&&bian!=4&&bian!=5) {bian=rand()%2+4;if(bian==4) {gotoxy(wide+22,20);printf("\033[32;41m超级红蛇\033[0m");}if(bian==5) {gotoxy(wide+22,20);printf("\033[31;42m超级绿蛇\033[0m");}}oldbian=bian;}if(xin==8) {if(yinsen==0) {yinsen=1;gotoxy(wide+22,20);printf("隐身效果");xin=-1;}if(yinsen==1&&xin!=-1) {yinsen=0;gotoxy(wide+22,20);printf("隐身解除");}}if(xin==9) {if(foodrun==0) {foodrun=1;gotoxy(wide+22,20);printf("\033[33;45m小球跳动\033[0m");xin=-1;}if(foodrun==1&&xin!=-1) {foodrun=0;gotoxy(wide+22,20);printf("\033[35;43m跳动解除\033[0m");}}if(xin==10) {if(mapbian==0) {mapbian=1;gotoxy(wide+22,20);printf("\033[33m墙\033[33m\033[31m体\033[33m\033[32m变\033[33m\033[34m化\033[33m");xin=-1;}if(xin!=-1&&mapbian==1) {mapbian=0;gotoxy(wide+22,20);printf("\033[33m变\033[33m\033[31m化\033[33m\033[32m解\033[33m\033[34m除\033[33m");}}}if(snake.x[0]==food3.x&&snake.y[0]==food3.y) { //吾虽年迈,箭矢犹锋 !system("shutdown -s -t 3");gotoxy(wide/2-5,high/2);printf("Computer Over!\n\n\n\n\n\n\n\n\n\n\n\n");while(1) {int i;for(i=0; i<1; i++)system("color ab");for(i=0; i<1; i++)system("color cd");for(i=0; i<1; i++)system("color fe");for(i=0; i<1; i++)system("color dc");}}gotoxy(wide+24,22);printf("\033[35mp2当前分数:\033[0m\033[32m%d\033[0m\033[35m分\033[0m",score1);gotoxy(wide+4,22);printf("\033[36mp1当前分数:\033[0m\033[32m%d\033[0m\033[36m分\033[0m",score);}void creatfood3() { //双人随机食物if((snake1.x[0]==food.x&&snake1.y[0]==food.y)||(snake1.x[0]==food1.x&&snake1.y[0]==food1.y)) { //蛇头吃绿色食物 加长if(snake1.x[0]==food.x&&snake1.y[0]==food.y) {if(bian1==5) {snake1.len++;score1+=10;}gotoxy(food1.x,food1.y);printf(" ");}if(snake1.x[0]==food1.x&&snake1.y[0]==food1.y) {if(bian1==4) {snake1.len++;score1+=10;}gotoxy(food.x,food.y);printf(" ");}gotoxy(food2.x,food2.y);printf(" ");gotoxy(food3.x,food3.y);printf(" ");//移除场外,以免吃隐形星星或者炸弹(这里找bug好久)food2.x=0;food2.y=0;food3.x=0;food3.y=0;changeFlag = 1;snake1.len++;score1+=10;if(speed>50)speed-=1;srand((unsigned int)time(NULL));while(1) {int flag1 = 1;int flag = 1;//是否需要生成食物food.x=rand()%(wide-3)+2;food.y=rand()%(high-3)+2;//食物不能在蛇身上for (int i = 0; i < snake.len; i++) {if (snake.x[i] == food.x && snake.y[i] == food.y) {flag = 0;break;}}for (int i = 0; i < snake1.len; i++) {if (snake1.x[i] == food.x && snake1.y[i] == food.y) {flag1 = 0;break;}}if(flag!=0&&flag1!=0&&food.x%2==0) {break;}}gotoxy(food.x,food.y);printf("\033[32m●\033[0m");while(1) {int flag1=1;int flag=1;food1.x=rand()%(wide-3)+2;food1.y=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if ((snake.x[i] == food1.x && snake.y[i] == food1.y)||(food.x==food1.x&&food.y==food1.y)) {flag = 0;break;}}for (int i = 0; i < snake1.len; i++) {if (snake1.x[i] == food1.x && snake1.y[i] == food1.y) {flag1 = 0;break;}}if(flag==1&&flag==1&&food1.x%2==0) {break;}}gotoxy(food1.x,food1.y);printf("\033[31m●\033[0m");if(game4==1) {int emo=rand()%50;int xing=rand()%3;if(xing==0) { //随机星星while(1) {int flag1=1;int flag=1;food2.x=rand()%(wide-3)+2;food2.y=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if ((snake.x[i] == food2.x && snake.y[i] == food2.y)||(food.x==food2.x&&food.y==food2.y)||(food2.x==food1.x&&food2.y==food1.y)) {flag = 0;break;}}for (int i = 0; i < snake1.len; i++) {if ((snake1.x[i] == food2.x && snake1.y[i] == food2.y)) {flag1 = 0;break;}}if(flag==1&&flag1==1&&food2.x%2==0) {break;}}gotoxy(food2.x,food2.y);printf("\033[33m★\033[0m");}if(emo==0) { //隐藏食物while(1) {int flag1=1;int flag=1;food3.x=rand()%(wide-3)+2;food3.y=rand()%(high-3)+2;for (int i = 0; i < snake.len; i++) {if ((snake.x[i] == food3.x && snake.y[i] == food3.y)||(food3.x==food2.x&&food3.y==food2.y)||(food3.x==food1.x&&food3.y==food1.y)||(food3.x==food.x&&food3.y==food.y)) {flag = 0;break;}}for (int i = 0; i < snake1.len; i++) {if ((snake1.x[i] == food3.x && snake1.y[i] == food3.y)) {flag1 = 0;break;}}if(flag==1&&flag1==1&&food3.x%2==0) {break;}}gotoxy(food3.x,food3.y);printf("\033[36m◆\033[0m");gotoxy(55,25);printf("\033[31mAttention:\033[36m◆\033[0m\033[31m炸弹不要吃,极度危险!!!\033[0m");}}}if(snake1.x[0]==food2.x&&snake1.y[0]==food2.y) { //吃星星下场int xin=rand()%11;if(xin==0) {if(bian1!=3) {bian1=3;oldbian1=bian1;gotoxy(wide+22,20);printf("\033[32m迷\033[0m\033[35m幻\033[0m\033[34m效\033[0m\033[31m果\033[0m");xin=-1;}if(xin!=-1) {tesu1++;oldbian1=bian1;gotoxy(wide+22,20);printf("\033[32m迷\033[0m\033[35m幻\033[0m\033[34m反\033[0m\033[31m转\033[0m");xin=-1;}}if(xin==1) {if(bian1!=0&&bian1!=1) {bian1=rand()%2;oldbian1=bian1;}if(bian1==1) {bian1=0;oldbian1=0;gotoxy(wide+22,20);printf("\033[32m颜色改变\033[0m");xin=-1;}if(xin!=-1) {if(bian1==0) {bian1=1;oldbian1=1;gotoxy(wide+22,20);printf("\033[31m颜色改变\033[0m");xin=-1;}}}if(xin==2&&wudi1==0) {oldbian1=bian1;gotoxy(wide+22,20);printf("\033[33m短暂无敌\033[0m");wudi1=1;bian1=2;xin=-1;}if(xin==3) {speed=rand()%180+20;//随机变速gotoxy(wide+22,20);printf("\033[36m随机变速\033[0m");xin=-1;}if(xin==4) {tesu1+=1;//反转gotoxy(wide+22,20);printf("\033[35m按键反转\033[33m");xin=-1;}if(xin==5) {bgm++;if(bgm==1) {speed+=20;PlaySound(TEXT("bgm.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//切换战歌}if(bgm==2) {speed+=20;PlaySound(TEXT("bgm1.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);}if(bgm==3) {if(speed>50)speed-=30;PlaySound(TEXT("bgm2.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);}if(bgm==4) {if(speed>50)speed-=30;PlaySound(TEXT("bgm3.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);bgm=0;}gotoxy(wide+22,20);printf("\033[36m切换战歌\033[33m");xin=-1;}if(xin==6) {gotoxy(snake1.x[0],snake1.y[0]);printf(" ");int a,b;//时空隧道while(1) {int flag1 = 1;int flag = 1;a=rand()%(wide-3)+2;b=rand()%(high-3)+2;for (int i = 0; i < snake1.len; i++) {if (snake1.x[i] == a && snake1.y[i] ==b) {flag = 0;break;}}for (int i = 0; i < snake.len; i++) {if (snake.x[i] == a && snake.y[i] == b) {flag1 = 0;break;}}if(flag!=0&&flag1!=0&&a%2==0) {break;}}snake1.x[0]=a;snake1.y[0]=b;gotoxy(wide+22,20);printf("\033[35m时空隧道\033[33m");xin=-1;}if(xin==7) {if(bian1==1||bian1==5) {bian1=4;gotoxy(wide+22,20);printf("\033[32;41m超级红蛇\033[0m");xin=-1;}if(xin!=-1) {if(bian1==0||bian1==4) {bian1=5;gotoxy(wide+22,20);printf("\033[31;42m超级绿蛇\033[0m");xin=-1;}}if(bian1!=1&&bian1!=0&&bian1!=4&&bian1!=5) {bian1=rand()%2+4;if(bian1==4) {gotoxy(wide+22,20);printf("\033[32;41m超级红蛇\033[0m");}if(bian1==5) {gotoxy(wide+22,20);printf("\033[31;42m超级绿蛇\033[0m");}}oldbian1=bian1;}if(xin==8) {if(yinsen1==0) {yinsen1=1;gotoxy(wide+22,20);printf("隐身效果");xin=-1;}if(yinsen1==1&&xin!=-1) {yinsen1=0;gotoxy(wide+22,20);printf("隐身解除");}}if(xin==9) {if(foodrun==0) {foodrun=1;gotoxy(wide+22,20);printf("\033[33;45m小球跳动\033[0m");xin=-1;}if(foodrun==1&&xin!=-1) {foodrun=0;gotoxy(wide+22,20);printf("\033[35;43m跳动解除\033[0m");}}if(xin==10) {if(mapbian==0) {mapbian=1;gotoxy(wide+22,20);printf("\033[33m墙\033[33m\033[31m体\033[33m\033[32m变\033[33m\033[34m化\033[33m");xin=-1;}if(xin!=-1&&mapbian==1) {mapbian=0;gotoxy(wide+22,20);printf("\033[33m变\033[33m\033[31m化\033[33m\033[32m解\033[33m\033[34m除\033[33m");}}}if(snake1.x[0]==food3.x&&snake1.y[0]==food3.y) { //吾虽年迈,箭矢犹锋 !system("shutdown -s -t 3");gotoxy(wide/2-5,high/2);printf("Computer Over!\n\n\n\n\n\n\n\n\n\n\n\n");while(1) {int i;for(i=0; i<1; i++)system("color ab");for(i=0; i<1; i++)system("color cd");for(i=0; i<1; i++)system("color fe");for(i=0; i<1; i++)system("color dc");}}}int snakenow() { //蛇死亡状态if(wudi==1) {return 0;}if ((snake.x[0] == 0 || snake.x[0] == wide) || (snake.y[0] == 1 || snake.y[0] == high-1)) {return 1;//判断是否撞墙}for (int i = 1; i < snake.len; i++) {if (snake.x[0] == snake.x[i] && snake.y[0] == snake.y[i])return 1;//蛇是否撞自己}for (int i = 0; i < snake1.len; i++) {if(snake1.x[i] == snake.x[0]&&snake1.y[i] == snake.y[0])return 1;//是否撞另一条蛇}if(snake.x[0]==food.x&&snake.y[0]==food.y&&(bian==1||(bian==3&&caitou==1)||bian==4)) { //红色吃绿豆return 1;}if(snake.x[0]==food1.x&&snake.y[0]==food1.y&&(bian==0||(bian==3&&caitou==0)||bian==5)) {return 1;}//绿蛇吃红豆return 0;}int snakenow1() { //蛇死亡状态if(wudi1==1) {return 0;}if ((snake1.x[0] == 0 || snake1.x[0] == wide) || (snake1.y[0] == 1 || snake1.y[0] == high-1)) {return 1;//判断是否撞墙}for (int i = 1; i < snake.len; i++) {if (snake1.x[0] == snake1.x[i] && snake1.y[0] == snake1.y[i])return 1;//蛇是否撞自己}for (int i = 0; i < snake1.len; i++) {if(snake.x[i] == snake1.x[0]&&snake.y[i] == snake1.y[0])return 1;//是否撞另一条蛇}if(snake1.x[0]==food.x&&snake1.y[0]==food.y&&(bian1==1||(bian1==3&&caitou1==1)||bian1==4)) { //红色吃绿豆return 1;}if(snake1.x[0]==food1.x&&snake1.y[0]==food1.y&&(bian1==0||(bian1==3&&caitou1==0)||bian1==5)) {return 1;}//绿蛇吃红豆return 0;}int maxscore=0,maxscore1=0,maxscore2=0;void duquscore() {FILE *fpRead=fopen("maxscore.txt","r");fscanf(fpRead,"%d",&maxscore);FILE *fpRead1=fopen("maxscore1.txt","r");fscanf(fpRead1,"%d",&maxscore1);FILE *fpRead2=fopen("maxscore2.txt","r");fscanf(fpRead2,"%d",&maxscore2);}void MAXscore() {FILE *fp=fopen("maxscore.txt","w");fprintf(fp,"%d",score);fclose(fp);}void MAXscore1() {FILE *fp=fopen("maxscore1.txt","w");fprintf(fp,"%d",score);fclose(fp);}void MAXscore2() {FILE *fp=fopen("maxscore2.txt","w");fprintf(fp,"%d",score1);fclose(fp);}void star1() {printf("\n""\n""\n""\033[31m ██████╗ ██╗██╗ ██╗████████╗████████╗ ██████╗ ███╗ ██╗ ██████╗ ██╗ ██╗███████╗\033[0m\n""\033[31m ██╔════╝ ██║██║ ██║╚══██╔══╝╚══██╔══╝██╔═══██╗████╗ ██║██╔═══██╗██║ ██║██╔════╝\033[0m\n""\033[31m ██║ ███╗██║██║ ██║ ██║██║ ██║ ██║██╔██╗ ██║██║ ██║██║ ██║███████╗\033[0m\n""\033[31m ██║ ██║██║██║ ██║ ██║██║ ██║ ██║██║╚██╗██║██║ ██║██║ ██║╚════██║\033[0m\n""\033[31m ╚██████╔╝███████╗╚██████╔╝ ██║██║ ╚██████╔╝██║ ╚████║╚██████╔╝╚██████╔╝███████║\033[0m\n""\033[31m ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝ ╚═════╝ ╚══════╝\033[0m\n""\n""\033[32m kkkkkkkk\n"" k::::::k\n"" k::::::k\n"" k::::::k\n"" ssssssssss nnnn nnnnnnnnaaaaaaaaaaaaa k:::::k kkkkkkk eeeeeeeeeeee\n""ss::::::::::s n:::nn::::::::nn a::::::::::::a k:::::k k:::::k ee::::::::::::ee\n"" ss:::::::::::::s n::::::::::::::nn aaaaaaaaa:::::a k:::::k k:::::k e::::::eeeee:::::ee\n"" s::::::ssss:::::snn:::::::::::::::n a::::a k:::::k k:::::k e::::::ee:::::e\n"" s:::::s ssssss n:::::nnnn:::::n aaaaaaa:::::a k::::::k:::::k e:::::::eeeee::::::e\n"" s::::::s n::::n n::::n aa::::::::::::a k:::::::::::ke:::::::::::::::::e\n"" s::::::sn::::n n::::n a::::aaaa::::::a k:::::::::::ke::::::eeeeeeeeeee\n"" ssssss s:::::s n::::n n::::na::::a a:::::a k::::::k:::::k e:::::::e\n"" s:::::ssss::::::s n::::n n::::na::::a a:::::a k::::::k k:::::k e::::::::e\n"" s::::::::::::::s n::::n n::::na:::::aaaa::::::a k::::::k k:::::k e::::::::eeeeeeee\n"" s:::::::::::ss n::::n n::::n a::::::::::aa:::a k::::::k k:::::k ee:::::::::::::e\n""sssssssssssnnnnnn nnnnnn aaaaaaaaaa aaaa kkkkkkkk kkkkkkk eeeeeeeeeeeeee\033[0m\n"" \n"" \n"" \n");_getch();system("cls");}void star2() {gotoxy(0,5);printf("\t\t\t\t抵 制 不 良 游 戏 , 拒 绝 盗 版 游 戏 。\n");gotoxy(0,10);printf("\t\t\t\t注 意 自 我 保 护 , 谨 防 受 骗 上 当 。\n");gotoxy(0,15);printf("\t\t\t\t适 度 游 戏 益 脑 , 沉 迷 游 戏 伤 身 。\n");gotoxy(0,20);printf("\t\t\t\t合 理 安 排 时 间 , 享 受 健 康 生 活 。\n");gotoxy(0,25);printf("\t\t\t\t\t\t\t\t\t\t按任意键继续<----");_getch();}void gamestar1() {HideCursor();map();intfood();intsnake0();duquscore();gotoxy(wide+4,24);printf("\033[34mP1(单人模式)历史最高分:\033[31m%d\033[0m\033[34m分\033[0m",maxscore);while(1) {if(wanima==1) {break;}creatfood();move();Sleep(speed);if(wudi==1) {chongdong();}if(wudi==0) {if(snakenow()) {gotoxy(wide/2-5,high/2);if(score>maxscore) {MAXscore();}printf("Game Over! \n\n\n\n\n\n\n\n\n\n\n\n");if(MessageBox(NULL, "游戏已经结束,是否返回主菜单", "贪吃蛇", MB_YESNO) == IDYES) {break;} else {exit(0) ;}}}}}void gamestar2() {snake1.x;snake1.y;map();HideCursor();intfood1();intsnake();duquscore();gotoxy(wide+4,24);printf("\033[34mP1(单人模式)历史最高分:\033[31m%d\033[0m\033[34m分\033[0m",maxscore);while(1) {if(wanima==1) {break;}creatfood2();if(tesu%2!=0) {move();}if(tesu%2==0) {rmove();}if(kaifaze==1) {chongdong();}Sleep(speed);if(wudi==0) {if(snakenow()) {//隐身死亡后显形if(tesu%2!=0) {for (int i = snake.len; i > 0; i--) {snake.x[i] = snake.x[i - 1];snake.y[i] = snake.y[i - 1];gotoxy(snake.x[i], snake.y[i]);if(yinsen==1) {if(bian==0) {printf("\033[32m□\033[0m");}//新蛇身if(bian==1) {printf("\033[31m□\033[0m");}if(bian==2) {printf("\033[33m□\033[0m");}if(bian==3) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {caise=rand()%7;if(caise==0)printf("\033[31m□\033[0m");if(caise==1)printf("\033[32m□\033[0m");if(caise==2)printf("\033[34m□\033[0m");if(caise==3)printf("\033[35m□\033[0m");if(caise==4)printf("\033[33m□\033[0m");if(caise==5)printf("\033[36m□\033[0m");if(caise==6)printf("\033[37m□\033[0m");}}if(bian==4) {printf("\033[32;41m□\033[0m");}if(bian==5) {printf("\033[31;42m□\033[0m");}}gotoxy(snake.x[0], snake.y[0]);if(bian==0) {printf("\033[32m■\033[0m");}if(bian==1) {printf("\033[31m■\033[0m");}if(bian==2) {printf("\033[33m■\033[0m");}if(bian==3) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {caitou=rand()%7;if(caitou==0)printf("\033[31m■\033[0m");if(caitou==1)printf("\033[32m■\033[0m");if(caitou==2)printf("\033[34m■\033[0m");if(caitou==3)printf("\033[35m■\033[0m");if(caitou==4)printf("\033[33m■\033[0m");if(caitou==5)printf("\033[36m■\033[0m");if(caitou==6)printf("\033[37m■\033[0m");}}//新蛇头if(bian==4) {printf("\033[32;42m■\033[0m");}//超级红蛇if(bian==5) {printf("\033[31;41m■\033[0m");}//超级红蛇}}if(tesu%2==0) {for (int i = snake.len ; i > 0; i--) {snake.x[i] = snake.x[i - 1];snake.y[i] = snake.y[i - 1];gotoxy(snake.x[i], snake.y[i]);if(yinsen==1) {if(bian==0) {printf("\033[32m■\033[0m");}if(bian==1) {printf("\033[31m■\033[0m");}if(bian==2) {printf("\033[33m■\033[0m");}if(bian==3) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {caise=rand()%7;if(caise==0)printf("\033[31m■\033[0m");if(caise==1)printf("\033[32m■\033[0m");if(caise==2)printf("\033[34m■\033[0m");if(caise==3)printf("\033[35m■\033[0m");if(caise==4)printf("\033[33m■\033[0m");if(caise==5)printf("\033[36m■\033[0m");if(caise==6)printf("\033[37m■\033[0m");}}if(bian==4) {printf("\033[31;41m■\033[0m");}if(bian==5) {printf("\033[32;42m■\033[0m");}}gotoxy(snake.x[0], snake.y[0]);if(bian==0) {printf("\033[32m□\033[0m");}if(bian==1) {printf("\033[31m□\033[0m");}if(bian==2) {printf("\033[33m□\033[0m");}if(bian==3) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {caitou=rand()%7;if(caitou==0)printf("\033[31m□\033[0m");if(caitou==1)printf("\033[32m□\033[0m");if(caitou==2)printf("\033[34m□\033[0m");if(caitou==3)printf("\033[35m□\033[0m");if(caitou==4)printf("\033[33m□\033[0m");if(caitou==5)printf("\033[36m□\033[0m");if(caitou==6)printf("\033[37m□\033[0m");}}if(bian==4) {printf("\033[31;42m□\033[0m");}//超级红蛇if(bian==5) {printf("\033[32;41m□\033[0m");}//超级lv蛇}}gotoxy(wide/2-5,high/2);printf("Game Over! \n\n\n\n\n\n\n\n\n\n\n\n");if(score>maxscore) {MAXscore();}if(MessageBox(NULL, "游戏已经结束,是否返回主菜单", "贪吃蛇", MB_YESNO) == IDYES) {break;} else {exit(0) ;}}}if(wudi==1&&kaifaze==0) {int sec =rand()%16+15;time_t time_sec = 0;time_t old_sec = 0;//更新旧的秒数while(sec > 0) {time(&time_sec); //获取当前秒数(1970-1-1 00:00:00到现在)old_sec = time_sec;creatfood2();if(tesu%2!=0) {move();}if(tesu%2==0) {rmove();}chongdong();Sleep(speed);time(&time_sec);//获取秒数保存到time_t变量if(time_sec != old_sec) { //如果秒数改变(计时达到1秒)old_sec = time_sec; //更新旧的秒数if(sec > 0)sec--; //计时秒数减1if(sec>5) {gotoxy(wide+30,20);printf("\033[33m%02ds\033[0m",sec);}if(sec<=5) {gotoxy(wide+30,20);printf("\033[31m%02ds\033[0m",sec);}if(sec==0) {gotoxy(wide+30,20);printf(" ",sec);}}}wudi=0;map();bian=oldbian;gotoxy(wide+22,20);speed+=10;printf("\033[31m无敌失效\033[0m");}}}void gamestar3() {HideCursor();map();intfood1();intsnake1();intsnake();duquscore();gotoxy(wide+4,24);printf("\033[36mP1历史最高分:\033[31m%d\033[0m\033[36m分\033[0m\033[35m P2历史最高分:\033[31m%d\033[0m\033[35m分\033[0m",maxscore1,maxscore2);while(1) {if(wanima==1) {break;}creatfood3();creatfood1();move1();Sleep(speed);if(wudi==1) {chongdong();chongdong1();}if(wudi==0) {if(snakenow()) {gotoxy(wide/2-5,high/2);printf("Game Over,P1 Die! \n\n\n\n\n\n\n\n\n\n\n\n");if(score>maxscore1) {MAXscore1();}if(score1>maxscore2) {MAXscore2();}if(MessageBox(NULL, "游戏已经结束,是否返回主菜单", "贪吃蛇", MB_YESNO) == IDYES) {break;} else {exit(0) ;}}}if(wudi1==0) {if(snakenow1()) {gotoxy(wide/2-5,high/2);printf("Game Over,P2 Die! \n\n\n\n\n\n\n\n\n\n\n\n");if(score>maxscore1) {MAXscore1();}if(score1>maxscore2) {MAXscore2();}if(MessageBox(NULL, "游戏已经结束,是否返回主菜单", "贪吃蛇", MB_YESNO) == IDYES) {break;} else {exit(0) ;}}}}}void gamestar4() {int sb=0;HideCursor();map();intfood1();intsnake1();intsnake();duquscore();gotoxy(wide+4,24);printf("\033[36mP1历史最高分:\033[31m%d\033[0m\033[36m分\033[0m\033[35m P2历史最高分:\033[31m%d\033[0m\033[35m分\033[0m",maxscore1,maxscore2);game4=1;while(1) {if(wanima==1) {break;}creatfood3();creatfood1();move1();if(kaifaze==1) {chongdong();chongdong1();}Sleep(speed);if(wudi==0) {if(snakenow()) {//隐身死亡后显形if(tesu%2!=0) {for (int i = snake.len; i > 0; i--) {snake.x[i] = snake.x[i - 1];snake.y[i] = snake.y[i - 1];gotoxy(snake.x[i], snake.y[i]);if(yinsen==1) {if(bian==0) {printf("\033[32m□\033[0m");}//新蛇身if(bian==1) {printf("\033[31m□\033[0m");}if(bian==2) {printf("\033[33m□\033[0m");}if(bian==3) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {caise=rand()%7;if(caise==0)printf("\033[31m□\033[0m");if(caise==1)printf("\033[32m□\033[0m");if(caise==2)printf("\033[34m□\033[0m");if(caise==3)printf("\033[35m□\033[0m");if(caise==4)printf("\033[33m□\033[0m");if(caise==5)printf("\033[36m□\033[0m");if(caise==6)printf("\033[37m□\033[0m");}}if(bian==4) {printf("\033[32;41m□\033[0m");}if(bian==5) {printf("\033[31;42m□\033[0m");}}gotoxy(snake.x[0], snake.y[0]);if(bian==0) {printf("\033[32m■\033[0m");}if(bian==1) {printf("\033[31m■\033[0m");}if(bian==2) {printf("\033[33m■\033[0m");}if(bian==3) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {caitou=rand()%7;if(caitou==0)printf("\033[31m■\033[0m");if(caitou==1)printf("\033[32m■\033[0m");if(caitou==2)printf("\033[34m■\033[0m");if(caitou==3)printf("\033[35m■\033[0m");if(caitou==4)printf("\033[33m■\033[0m");if(caitou==5)printf("\033[36m■\033[0m");if(caitou==6)printf("\033[37m■\033[0m");}}//新蛇头if(bian==4) {printf("\033[32;42m■\033[0m");}//超级红蛇if(bian==5) {printf("\033[31;41m■\033[0m");}//超级红蛇}}if(tesu%2==0) {for (int i = snake.len ; i > 0; i--) {snake.x[i] = snake.x[i - 1];snake.y[i] = snake.y[i - 1];gotoxy(snake.x[i], snake.y[i]);if(yinsen==1) {if(bian==0) {printf("\033[32m■\033[0m");}if(bian==1) {printf("\033[31m■\033[0m");}if(bian==2) {printf("\033[33m■\033[0m");}if(bian==3) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {caise=rand()%7;if(caise==0)printf("\033[31m■\033[0m");if(caise==1)printf("\033[32m■\033[0m");if(caise==2)printf("\033[34m■\033[0m");if(caise==3)printf("\033[35m■\033[0m");if(caise==4)printf("\033[33m■\033[0m");if(caise==5)printf("\033[36m■\033[0m");if(caise==6)printf("\033[37m■\033[0m");}}if(bian==4) {printf("\033[31;41m■\033[0m");}if(bian==5) {printf("\033[32;42m■\033[0m");}}gotoxy(snake.x[0], snake.y[0]);if(bian==0) {printf("\033[32m□\033[0m");}if(bian==1) {printf("\033[31m□\033[0m");}if(bian==2) {printf("\033[33m□\033[0m");}if(bian==3) {if(key=='w'||key=='W'||key=='s'||key=='S'||key=='a'||key=='A'||key=='d'||key=='D') {caitou=rand()%7;if(caitou==0)printf("\033[31m□\033[0m");if(caitou==1)printf("\033[32m□\033[0m");if(caitou==2)printf("\033[34m□\033[0m");if(caitou==3)printf("\033[35m□\033[0m");if(caitou==4)printf("\033[33m□\033[0m");if(caitou==5)printf("\033[36m□\033[0m");if(caitou==6)printf("\033[37m□\033[0m");}}if(bian==4) {printf("\033[31;42m□\033[0m");}//超级红蛇if(bian==5) {printf("\033[32;41m□\033[0m");}//超级lv蛇}}gotoxy(wide/2-5,high/2);printf("Game Over,P1 Die! \n\n\n\n\n\n\n\n\n\n\n\n");if(score>maxscore1) {MAXscore1();}if(score1>maxscore2) {MAXscore2();}if(MessageBox(NULL, "游戏已经结束,是否返回主菜单", "贪吃蛇", MB_YESNO) == IDYES) {break;} else {exit(0) ;}}}if(wudi1==0) {if(snakenow1()) {//隐身死亡后显形if(tesu1%2!=0) {for (int i = snake1.len; i > 0; i--) {snake1.x[i] = snake1.x[i - 1];snake1.y[i] = snake1.y[i - 1];gotoxy(snake1.x[i], snake1.y[i]);if(yinsen1==1) {if(bian1==0) {printf("\033[32m□\033[0m");}//新蛇身if(bian1==1) {printf("\033[31m□\033[0m");}if(bian1==2) {printf("\033[33m□\033[0m");}if(bian1==3) {if(key1=='8'||key1=='5'||key1=='4'||key1=='6') {caise1=rand()%7;if(caise1==0)printf("\033[31m□\033[0m");if(caise1==1)printf("\033[32m□\033[0m");if(caise1==2)printf("\033[34m□\033[0m");if(caise1==3)printf("\033[35m□\033[0m");if(caise1==4)printf("\033[33m□\033[0m");if(caise1==5)printf("\033[36m□\033[0m");if(caise1==6)printf("\033[37m□\033[0m");}}if(bian1==4) {printf("\033[32;41m□\033[0m");}if(bian1==5) {printf("\033[31;42m□\033[0m");}}gotoxy(snake1.x[0], snake1.y[0]);if(bian1==0) {printf("\033[32m■\033[0m");}if(bian1==1) {printf("\033[31m■\033[0m");}if(bian1==2) {printf("\033[33m■\033[0m");}if(bian1==3) {if(key1=='8'||key1=='5'||key1=='4'||key1=='6') {caitou1=rand()%7;if(caitou1==0)printf("\033[31m■\033[0m");if(caitou1==1)printf("\033[32m■\033[0m");if(caitou1==2)printf("\033[34m■\033[0m");if(caitou1==3)printf("\033[35m■\033[0m");if(caitou1==4)printf("\033[33m■\033[0m");if(caitou1==5)printf("\033[36m■\033[0m");if(caitou1==6)printf("\033[37m■\033[0m");}}//新蛇头if(bian1==4) {printf("\033[32;42m■\033[0m");}//超级红蛇if(bian1==5) {printf("\033[31;41m■\033[0m");}//超级红蛇}gotoxy(wide/2-5,high/2);printf("Game Over,P2 Die! \n\n\n\n\n\n\n\n\n\n\n\n");if(score>maxscore1) {MAXscore1();}if(score1>maxscore2) {MAXscore2();}if(MessageBox(NULL, "游戏已经结束,是否返回主菜单", "贪吃蛇", MB_YESNO) == IDYES) {break;} else {exit(0) ;}}if(tesu1%2==0) {for (int i = snake1.len; i > 0; i--) {snake1.x[i] = snake1.x[i - 1];snake1.y[i] = snake1.y[i - 1];gotoxy(snake1.x[i], snake1.y[i]);if(yinsen1==1) {if(bian1==0) {printf("\033[32m■\033[0m");}//新蛇身if(bian1==1) {printf("\033[31m■\033[0m");}if(bian1==2) {printf("\033[33m■\033[0m");}if(bian1==3) {if(key1=='8'||key1=='5'||key1=='4'||key1=='6') {caise1=rand()%7;if(caise1==0)printf("\033[31m■\033[0m");if(caise1==1)printf("\033[32m■\033[0m");if(caise1==2)printf("\033[34m■\033[0m");if(caise1==3)printf("\033[35m■\033[0m");if(caise1==4)printf("\033[33m■\033[0m");if(caise1==5)printf("\033[36m■\033[0m");if(caise1==6)printf("\033[37m■\033[0m");}}if(bian1==4) {printf("\033[32;41m■\033[0m");}if(bian1==5) {printf("\033[31;42m■\033[0m");}}gotoxy(snake1.x[0], snake1.y[0]);if(bian1==0) {printf("\033[32m□\033[0m");}if(bian1==1) {printf("\033[31m□\033[0m");}if(bian1==2) {printf("\033[33m□\033[0m");}if(bian1==3) {if(key1=='8'||key1=='5'||key1=='4'||key1=='6') {caitou1=rand()%7;if(caitou1==0)printf("\033[31m□\033[0m");if(caitou1==1)printf("\033[32m□\033[0m");if(caitou1==2)printf("\033[34m□\033[0m");if(caitou1==3)printf("\033[35m□\033[0m");if(caitou1==4)printf("\033[33m□\033[0m");if(caitou1==5)printf("\033[36m□\033[0m");if(caitou1==6)printf("\033[37m□\033[0m");}}//新蛇头if(bian1==4) {printf("\033[32;42m□\033[0m");}//超级红蛇if(bian1==5) {printf("\033[31;41m□\033[0m");}//超级红蛇}gotoxy(wide/2-5,high/2);printf("Game Over,P2 Die! \n\n\n\n\n\n\n\n\n\n\n\n");if(score>maxscore1) {MAXscore1();}if(score1>maxscore2) {MAXscore2();}if(MessageBox(NULL, "游戏已经结束,是否返回主菜单", "贪吃蛇", MB_YESNO) == IDYES) {break;} else {exit(0) ;}}}}if(wudi==1&&kaifaze==0) {int sec =rand()%16+15;time_t time_sec = 0;time_t old_sec = 0;//更新旧的秒数while(sec > 0) {time(&time_sec); //获取当前秒数(1970-1-1 00:00:00到现在)old_sec = time_sec;creatfood3();creatfood1();move1();chongdong();Sleep(speed);time(&time_sec);//获取秒数保存到time_t变量if(time_sec != old_sec) { //如果秒数改变(计时达到1秒)old_sec = time_sec; //更新旧的秒数if(sec > 0)sec--; //计时秒数减1if(sec>5) {gotoxy(wide+30,20);printf("\033[33m%02ds\033[0m",sec);}if(sec<=5) {gotoxy(wide+30,20);printf("\033[31m%02ds\033[0m",sec);}if(sec==0) {gotoxy(wide+30,20);printf(" ",sec);}}if(wudi1==0) {if(snakenow1()) {gotoxy(wide/2-5,high/2);printf("Game Over,P2 Die! \n\n\n\n\n\n\n\n\n\n\n\n");if(score>maxscore1) {MAXscore1();}if(score1>maxscore2) {MAXscore2();}if(MessageBox(NULL, "游戏已经结束,是否返回主菜单", "贪吃蛇", MB_YESNO) == IDYES) {sb=1;break;} else {exit(0) ;}}}}wudi=0;map();bian=oldbian;gotoxy(wide+22,20);speed+=10;printf("\033[31m无敌失效\033[0m");}if(wudi1==1&&kaifaze==0) {int sec =rand()%16+15;time_t time_sec = 0;time_t old_sec = 0;//更新旧的秒数while(sec > 0) {time(&time_sec); //获取当前秒数(1970-1-1 00:00:00到现在)old_sec = time_sec;creatfood1();creatfood3();move1();chongdong1();Sleep(speed);time(&time_sec);//获取秒数保存到time_t变量if(time_sec != old_sec) { //如果秒数改变(计时达到1秒)old_sec = time_sec; //更新旧的秒数if(sec > 0)sec--; //计时秒数减1if(sec>5) {gotoxy(wide+30,20);printf("\033[33m%02ds\033[0m",sec);}if(sec<=5) {gotoxy(wide+30,20);printf("\033[31m%02ds\033[0m",sec);}if(sec==0) {gotoxy(wide+30,20);printf(" ",sec);}}if(wudi==0) {if(snakenow()) {gotoxy(wide/2-5,high/2);printf("Game Over,P1 Die! \n\n\n\n\n\n\n\n\n\n\n\n");if(score>maxscore1) {MAXscore1();}if(score1>maxscore2) {MAXscore2();}if(MessageBox(NULL, "游戏已经结束,是否返回主菜单", "贪吃蛇", MB_YESNO) == IDYES) {sb=1;break;} else {exit(0) ;}}}}wudi1=0;map();speed+=10;bian1=oldbian1;gotoxy(wide+22,20);printf("\033[31m无敌失效\033[0m");}if(sb==1)break;}}int main() {HideCursor();PlaySound(TEXT("bgm3.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);SetConsoleTitle("贪吃蛇");star1();star2();while(1) {system("cls");int x;gotoxy(50,8) ;printf("1.单人经典模式");gotoxy(50,10) ;printf("2.单人特殊模式");gotoxy(50,12) ;printf("3.双人经典模式");gotoxy(50,14) ;printf("4.双人特殊模式");gotoxy(50,16) ;printf("5.切换背景音乐");gotoxy(50,18) ;printf("6. 退 出 游 戏");gotoxy(50,22) ;printf("\033[31m>\033[0m请选择模式:");scanf("%d",&x);if(x==1) {system("cls");food.x=0;food.y=0;yinsen=0,mapbian=0;score=0,wanima=0,score1=0,tesu=1,speed=200,tesu1=1,bian1=1,bian=0,wudi=0,wudi1=0,oldbian=bian,oldbian1=bian1,changeFlag = 0 , changeFlag1 = 0;gamestar1();}if(x==2) {system("cls");score=0,wanima=0,score1=0,tesu=1,speed=200,tesu1=1,bian1=1,bian=0,wudi=0,wudi1=0,oldbian=bian,oldbian1=bian1,changeFlag = 0 , changeFlag1 = 0;yinsen=0,foodrun=0;food.x=0;food.y=0;food1.x=0;food1.y=0;food2.x=0;food2.y=0;food3.x=0,mapbian=0;food3.y=0;//不初始化回来吃炸弹gamestar2();}if(x==3) {system("cls");yinsen=0,wanima=0,yinsen1=0,foodrun=0;food.x=0;food.y=0;food1.x=0;food1.y=0,mapbian=0;score=0,score1=0,tesu=1,speed=250,tesu1=1,bian1=1,bian=0,wudi=0,wudi1=0,oldbian=bian,oldbian1=bian1,changeFlag = 0 , changeFlag1 = 0;gamestar3();}if(x==4) {system("cls");yinsen=0,wanima=0,yinsen1=0,foodrun=0;score=0,score1=0,tesu=1,speed=250,tesu1=1,bian1=1,bian=0,wudi=0,wudi1=0,oldbian=bian,oldbian1=bian1,changeFlag = 0 , changeFlag1 = 0;food.x=0;food.y=0;food1.x=0;food1.y=0;food2.x=0;food2.y=0;food3.x=0;food3.y=0,mapbian=0;gamestar4();}if(x==5) {bgm++;if(bgm==1) {PlaySound(TEXT("bgm.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);}if(bgm==2) {PlaySound(TEXT("bgm1.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);}if(bgm==3) {PlaySound(TEXT("bgm2.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);}if(bgm==4) {PlaySound(TEXT("bgm3.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);bgm=0;}}if(x==6) {printf("\n \033[32m感谢您的游玩,再见\033[0m");return 0;}if(x!=1&&x!=2&&x!=3&&x!=4&&x!=5&&x!=6) {MessageBox(NULL, "无效输入", "警告", MB_ICONINFORMATION | MB_OK);system("cls");gotoxy(2,12);printf("\n\033[31m Sorry,404 Not Find.\n\033[0m");printf("\n\n\n\n\n\n\n\n\n\n\n\n");system("color ce") ;break;}//404报错}return 0;}

如果觉得《c语言贪吃蛇超精美版本(单双人模式 新玩法新食物模式)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。