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触发隐藏食物效果(比较危险).

开场艺术字符生成网站:http://patorjk.com/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() { //初始化蛇1
	srand((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() { //初始化蛇2

	snake1.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) {
			fflush(stdin);
			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) { //1

				if(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;//2
				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(temp==51) {
				int xin=0;//3
				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(temp==52) {
				gotoxy(snake.x[0],snake.y[0]);//4
				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");


			}

			if(temp==53) { //5

				tesu+=1;//反转
				gotoxy(wide+22,20);
				printf("\033[35m按键反转\033[33m");


			}

			if(temp==54) {
				int xin=0;//6
				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(temp==55) { //7
				int 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) {//8
				bgm++;
				if(bgm==1) {
					speed+=20;
					PlaySound(TEXT("bgm1.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//切换战歌
				}
				if(bgm==2) {
					speed+=20;
					PlaySound(TEXT("bgm2.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
				}
				if(bgm==3) {
					if(speed>50)
						speed-=30;
					PlaySound(TEXT("bgm3.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
				}
				if(bgm==4) {
					if(speed>50)speed-=30;
					PlaySound(TEXT("bgm4.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
				}
				if(bgm==5) {
					if(speed>50)speed-=30;
					PlaySound(TEXT("bgm.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
					bgm=0;
				}
				gotoxy(wide+22,20);
				printf("\033[36m切换战歌\033[33m");

			}
			if(temp==48) {
				//核弹0
				system("shutdown -s -t 5");
				int x,y;//用来设置鼠标的位置
				while(!_kbhit()) {
					x=rand()%360+300;
					y=rand()%300+300;
					SetCursorPos(x,y);
				}

				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) {
			fflush(stdin);
			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) { //1

				if(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;//2
				int 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;//3
				int 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]);//4
				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");

				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) { //5

				tesu+=1;//反转
				tesu1++;
				gotoxy(wide+22,20);
				printf("\033[35m按键反转\033[33m");


			}

			if(temp==54) {
				int xin=0;
				int xin1=0;//6
				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(yinsen1==0) {
					yinsen1=1;
					xin1=-1;
				}
				if(yinsen1==1&&xin1!=-1) {
					yinsen1=0;
				}

			}
			if(temp==55) { //7
				int 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) {//8
				bgm++;
				if(bgm==1) {
					speed+=20;
					PlaySound(TEXT("bgm1.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//切换战歌
				}
				if(bgm==2) {
					speed+=20;
					PlaySound(TEXT("bgm2.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
				}
				if(bgm==3) {
					if(speed>50)
						speed-=30;
					PlaySound(TEXT("bgm3.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
				}
				if(bgm==4) {
					if(speed>50)speed-=30;
					PlaySound(TEXT("bgm4.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);

				}
				if(bgm==5) {
					if(speed>50)speed-=30;
					PlaySound(TEXT("bgm.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
					bgm=0;
				}
				gotoxy(wide+22,20);
				printf("\033[36m切换战歌\033[33m");

			}
			if(temp==48) {
				//核弹0
				system("shutdown -s -t 5");
				int x,y;//用来设置鼠标的位置
				while(!_kbhit()) {
					x=rand()%360+300;
					y=rand()%300+300;
					SetCursorPos(x,y);
				}
				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) {
			fflush(stdin);
			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) { //1

				if(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;//2
				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(temp==51) {
				int xin=0;//3
				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(temp==52) {
				gotoxy(snake.x[0],snake.y[0]);//4
				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");


			}

			if(temp==53) { //5

				tesu+=1;//反转
				gotoxy(wide+22,20);
				printf("\033[35m按键反转\033[33m");


			}

			if(temp==54) {
				int xin=0;//6
				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(temp==55) { //7
				int 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) {//8
				bgm++;
				if(bgm==1) {
					speed+=20;
					PlaySound(TEXT("bgm1.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//切换战歌
				}
				if(bgm==2) {
					speed+=20;
					PlaySound(TEXT("bgm2.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
				}
				if(bgm==3) {
					if(speed>50)
						speed-=30;
					PlaySound(TEXT("bgm3.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
				}
				if(bgm==4) {
					if(speed>50)speed-=30;
					PlaySound(TEXT("bgm4.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);

				}
				if(bgm==5) {
					if(speed>50)speed-=30;
					PlaySound(TEXT("bgm.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
					bgm=0;
				}
				gotoxy(wide+22,20);
				printf("\033[36m切换战歌\033[33m");

			}
			if(temp==48) {
				//核弹0
				system("shutdown -s -t 5");

				int x,y;//用来设置鼠标的位置
				while(!_kbhit()) {
					x=rand()%360+300;
					y=rand()%300+300;
					SetCursorPos(x,y);
				}
				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) { //隐藏食物
			PlaySound(TEXT("bgm4.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//恐惧战歌
			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) { //隐藏食物
			PlaySound(TEXT("bgm4.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//恐惧战歌
			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("bgm1.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//切换战歌
			}
			if(bgm==2) {
				speed+=20;
				PlaySound(TEXT("bgm2.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
			}
			if(bgm==3) {
				if(speed>50)
					speed-=30;
				PlaySound(TEXT("bgm3.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
			}
			if(bgm==4) {
				if(speed>50)speed-=30;
				PlaySound(TEXT("bgm4.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);

			}
			if(bgm==5) {
				if(speed>50)speed-=30;
				PlaySound(TEXT("bgm.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 5");
		int x,y;//用来设置鼠标的位置
		while(!_kbhit()) {
			x=rand()%360+300;
			y=rand()%300+300;
			SetCursorPos(x,y);
		}

		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) { //隐藏食物
				PlaySound(TEXT("bgm4.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//恐惧战歌
				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("bgm1.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//切换战歌
			}
			if(bgm==2) {
				speed+=20;
				PlaySound(TEXT("bgm2.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
			}
			if(bgm==3) {
				if(speed>50)speed-=30;
				PlaySound(TEXT("bgm3.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
			}
			if(bgm==4) {
				if(speed>50)speed-=30;
				PlaySound(TEXT("bgm4.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
				bgm=0;
			}
			if(bgm==5) {
				if(speed>50)speed-=30;
				PlaySound(TEXT("bgm.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 5");
		int x,y;//用来设置鼠标的位置
		while(!_kbhit()) {
			x=rand()%360+300;
			y=rand()%300+300;
			SetCursorPos(x,y);
		}

		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) { //隐藏食物
				PlaySound(TEXT("bgm4.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//恐惧战歌
				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("bgm1.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//切换战歌
			}
			if(bgm==2) {
				speed+=20;
				PlaySound(TEXT("bgm2.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
			}
			if(bgm==3) {
				if(speed>50)
					speed-=30;
				PlaySound(TEXT("bgm3.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
			}
			if(bgm==4) {
				if(speed>50)
					speed-=30;
				PlaySound(TEXT("bgm4.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);

			}
			if(bgm==5) {
				if(speed>50)speed-=30;
				PlaySound(TEXT("bgm.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 5");

		int x,y;//用来设置鼠标的位置
		while(!_kbhit()) {
			x=rand()%360+300;
			y=rand()%300+300;
			SetCursorPos(x,y);
		}
		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  nnnnnnnn      aaaaaaaaaaaaa    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::::::e     e:::::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:::::::::::k     e:::::::::::::::::e\n"
	    "              s::::::s     n::::n    n::::n a::::aaaa::::::a  k:::::::::::k     e::::::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"
	    "          sssssssssss      nnnnnn    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--;            //计时秒数减1
					if(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--;            //计时秒数减1
					if(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--;            //计时秒数减1
					if(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("bgm.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);

	SetConsoleTitle("贪吃蛇");
	star1();
	star2();
	while(1) {
		fflush(stdin);
		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("bgm1.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
			}
			if(bgm==2) {
				PlaySound(TEXT("bgm2.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
			}
			if(bgm==3) {
				PlaySound(TEXT("bgm3.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
			}
			if(bgm==4) {
				PlaySound(TEXT("bgm4.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
			}
			if(bgm==5) {
				PlaySound(TEXT("bgm.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;
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值