人生之路1.20代码 第二部分

代码不止这一段,不止这一段,不止这一段!!!

2500-5000行

void game()//第一章主页面,函数名从1.04开始一直没改 
{
	if (things[22]==150)
	  {
	  	Sout("嘿,‘伙计’,你的存档被删除了~");
	  	me.play+=clock(),exit(0);
	  }
	things[18]++;
	const string where[]={"家(存档的地方)","学校(学习的地方)","小超市(购物的地方)","公园(运动)","游乐场(玩耍,赚点零花钱)","保存并退出","关于游戏","自杀"};
	int i,j,k,n,m,l;
	while(1)
	  {
	  	cls();
	  	if (things[0]>=2)
	  	  return;
	  	if(things[10]>=12){
		   things[0]++; 
		   return;}
		char s;
		if (things[188]==1)
		  s=choose(0)+'0';
		else
		  {
		  	for(i=0;i<8;i++)
		  	  printf("%d.%s\n",i,where[i].c_str());
		  	s=_getch();
		  }
	    switch(s)
	      {
	      	case '0':home();break;
	      	case '1':school();break;
	      	case '2':shop();break;
	      	case '3':park();break;
	      	case '4':carnie();break;
	      	case '5':Write_File();me.play+=clock(),exit(0);
	      	case '6':about();break;
	      	case '7':Sout("Ftr:????");Die();break;
	      	case 'h':
	      		{
	      			cls();
	      			cout<<"家:住所,可以存档,睡觉,学习,吃饭,设置以及查看状态\n";
	      			cout<<"学校:学习、交友、玩耍、考试的地方,是你知识的源泉\n";
	      			cout<<"小超市:购买在游戏中生存的必需品(比如食物什么的)\n";
	      			cout<<"公园:运动放松、钓鱼休闲的地方,当然还有一些隐藏功能\n";
	      			cout<<"游乐场:玩一些好玩的游戏,轻松地赚一点小钱\n";
	      			cout<<"存档并退出:这个好像没什么解释的\n";
	      			cout<<"关于游戏:点开看看就知道了\n";
	      			cout<<"??????\n";
	      			gs();
				}
		  }
	  }
}
void home()//家 
{
	const string where[]={"做作业(+XP)","看书(+XP)","睡觉(回满精力)","冥想(+IQ)","吃饭(+饱食度,+水分)","查看状态","查看背包","存档","设置","返回"}; 
	int i,j,k,n,m;
	things[25]++;
	while(1)
	{
	  if (things[7]>=1000000)
	    hdcj(17);
	  system("cls");
	  char l;
	  if (things[188]==1)//图像式选择 
	    l=choose(1)+'0';
	else
	  {
	  cout<<"这里是你的家,充满着温馨和你珍贵的回忆\n";
	  cout<<"按下序号,实现功能\n";
	  for(i=0;i<10;i++)
	    printf("%d.%s\n",i,where[i].c_str());
	  l=_getch();
	  }
	  cls();
	  switch(l)
	    {
	    	case '0':
	    		cls();
	    		use(9);
	    		tepan();
	    		things[8]-=5;
	    		system("cls");
	    		Sout("1+1==2");
	    		jdt(7);
	    		gs();
	    		Sout("你的XP增加了!");
	    		things[1]+=5;
	    		sheng();break;
	    	case '1':cls();
	    		use(10);
	    		tepan();
	    		things[8]-=5;
	    		system("cls");
	    		Sout("苟利国家生死以,岂因祸福避趋之~");
	    		jdt(6);
	    		gs();
	    		Sout("你的XP增加了!");
	    		things[1]+=10;
	    		if (things[1]>=sj[things[9]])
	    		  things[9]++,cout<<"你升级了!";break;
	    	case '2':cls();
	    		hdcj(38);
	    		use(11);
	    		Sout("多么一个舒适的好觉啊!你的精力已经回满!(水分-10 饱食-10)");
	    		things[16]++;
	    		things[97]=rand()%400+100;
					things[93]+=things[93]*float(things[97]/100000.0);
	    		things[3]-=10,things[4]-=10,things[8]=100;
	    		gs();
					things[187]=random(1,10);
					switch(things[187])
					  {//虽然很离谱但是很准 
						case 1:Sout("天气预报:今日雷暴天气,不宜出行");break;
						case 2:Sout("新闻:小森林传来不明怪叫声,专家称可能是一种叫树妖的生物发出的。树妖是一种由枯死的树木变成的怪物,异常凶猛");break;
						case 3:Sout("娱乐新闻:今日有一算命先生称我市市民"+name+"会事事不顺,该算命先生已被逮捕");break;
						case 4:Sout("你的眼前好像出现了一个黑影,你正想仔细看,他却不见了,你发现你还是在睡觉的位置");break;
						case 5:Sout("特大新闻,特大新闻:我市银行遭犯罪分子抢劫,损失惨重。据银行人员说他们会尽力减少广大市民们的损失");things[93]*=(random(72,100)/100.0);break;
						default:Sout("天亮了,又是美好的一天");break;
					  }
					Sleep(3000);
					gs();
				break;
	    	case '3':cls();
	    		use(12);
	    		tepan();
	    		things[8]-=5;
	    		things[1]+=10;
	    		jdt(6);
	    		sheng();break;
	    	case '4':
			{cls();
	    		use(13);
	    		tepan();
	    		things[8]-=5;
	    		string vname[10]=
	    		{
	    			"可乐+汉堡+炸鸡", 
	    			"薯条",
	    			"鸭血粉丝汤", 
	    			"稀饭", 
	    			"米饭+青菜", 
	    			"白开水",
	    			"番茄炒鸡蛋",
	    			"土豆炖排骨",
	    			"压缩饼干",
	    			"神药",//作弊级神器了 
				};
	    		int AdD[10][3]=
	    		{
	    			46,40,15,
	    			15,20,-5,
	    			40,30,30,
	    			10,-5,20,
	    			20,30,10,
	    			5,1,40,
	    			20,20,20,
	    			48,50,10,
	    			30,50,10,
	    			2000000,2000000,2000000,
				};
				for(i=0;i<10;i++)
				  printf("%d.%s  价钱:%d 饱食度:%d 水分:%d\n",i,vname[i].c_str(),AdD[i][0],AdD[i][1],AdD[i][2]);
				j=_getch()-'0';
				if (things[7]<AdD[j][0])
				  {
				  	cout<<"钱不够!";
				  	gs();
				  	break;
				  }
				things[7]-=AdD[j][0];
				things[3]+=AdD[j][1];
				things[4]+=AdD[j][2];
				if (things[3]>=50000)
				  hdcj(59);
	    		Sout(name+":嗯。。。真香!");
	    		jdt(6);
	    		Sout("饱食度,水分已恢复!");
	    		break;}
	    	case '5':
	    		{
				cls();
	    		use(14);
	    		const string w[]=
	    		{"关卡进度:",
	    		"经验值:",
	    		"健康值:",
	    		"水分:",
	    		"饱食度:",
	    		"攻击力:",
	    		"防御力:",
	    		"零花钱:",
	    		"精力:",
	    		"等级:",
	    		"年龄:",
				};
				string nan[5]={"","简单模式","中等模式","困难模式","炼狱模式"};
				string xs[2]={"文字","图像"};
				printf("姓名:%s\n",name.c_str()); 
	    		for(i=0;i<=10;i++)
	    		if (i==1)
	    		  printf("%s%lld/%lld\n",w[i].c_str(),things[i],sj[things[9]+1]);
	    		else
	    		  printf("%s%lld\n",w[i].c_str(),things[i]);
	    		printf("挂机上限:%d小时\n",things[30]/60);
				printf("挂机收益:%d元/分钟\n",things[29]); 
				printf("达到过的最高等级:%d\n",things[36]);
				printf("死亡次数:%d\n",things[190]);
				printf("杀怪次数:%d\n",things[83]);
				printf("竞技场连胜次数:%d\n",things[82]);
				printf("银行卡余额:%d\n",things[93]);
				printf("等级:");
				switch(things[304])
				  {
				  	case 0:if (things[0]==7)printf("Opration");else printf("Human");break;
				  	case 1:printf("Demon");break;
				  	case 2:printf("God");break;
				  }
				printf("\n");
				printf("修炼进度:%d/41\n",things[303]);
				printf("总收入:%lld\n",gotmoney);
				printf("总开销/损失:%lld\n",gotmoney-things[93]-things[7]);
				printf("显示形式:%s\n",xs[things[188]].c_str()); 
	    		cout<<"考试最高分:"<<things[20]<<'\n';
	    		cout<<"游戏难度:"<<nan[things[21]]<<'\n';
	    		cout<<"去神殿次数:"<<things[193]<<'\n';
	    		cout<<"在神殿被炸死次数:"<<things[196]<<'\n';
	    		cout<<"找到神殿宝藏次数:"<<things[194]<<'\n';
	    		cout<<"在神殿逃跑次数:"<<things[193]-things[194]-things[196]<<'\n';
	    		cout<<"被你炸死的怪物数量:"<<things[197]<<'\n'; 
	    		cout<<"成就完成数量:"<<things[195]<<'/'<<cjnum<<'\n';
	    		cout<<"游戏开始时间:"<<kaishi<<'\n';
	    		cout<<"今日游戏时间:"<<me.play<<'\n';
	    		cout<<"所属帮派:"<<gang[me.gang].name<<'\n';
	    		time_t now;
	    		time(&now);
	    		cout<<"现在时间:"<<now<<'\n';
	    		cout<<"存档累计时间:"<<(now-kaishi)/86400<<"天"<<(now-kaishi)%86400/3600<<"小时"<<(now-kaishi)%3600/60<<"分钟"<<(now-kaishi)%60<<"秒"<<"("<<now-kaishi<<")"<<'\n';
	    		cout<<"存档号:"<<things[185]<<'\n';
	    		cout<<"存档名:"<<filename[things[185]]<<'\n';
				printf("按任意键返回");
	    		gs();
				break;
			}
	    	case '6':{cls();
	    	tepan();
	    		things[8]-=5;
	    	  const string w[]={"棒棒糖","面包","矿泉水","小瓶子","玩具枪"};
	    	  for(i=11;i<16;i++)
	    	    printf("%d.%s*%d\n",i,w[i-11].c_str(),things[i]);
	    	  printf("u.使用\n");
	    	  printf("e.出售\n");
	    	  printf("x.退出\n");
	    	  char m;
	    	  m=_getch();
	    	if (m=='u')
	    	  {
	    	  	printf("用哪个?");
	    	  	cin>>j;
	    	  	printf("用几个?");
	    	  	cin>>k;
	    	  	if (things[j]>=k)
	    	  	  {
	    	  	  	things[j]-=k;
	    	  	  	for(int jj=1;jj<=k;jj++)
	    	  	  	for(int ii=0;ii<10;ii++)
	    	  	  	  things[ii]+=xiaoguo[j][ii];//直接加上 
					}
				break;
			  }
			if (m=='x')
			  break;
			printf("你想卖掉哪个?输入序号和数量");
			int ll,ss;
			cin>>ll>>ss;
			if (things[ll]>=ss)
			  ll-=ss,things[7]+=much[ss],gotmoney+=much[ss];
			else
			  cout<<"不存在的";
			break;}
	    	case '7':Write_File();break;
	    	case '8':
	    		{
	    		use(15);
	    		cout<<"1.改速度:当前文字出现速度:"<<sudu<<" \n2.改颜色"<<" \n3.重新读取存档(读取错误时使用)"<<"\n4.查看日记 \n5.隐藏/显示进度条 \n6.改存档名 \n7.显示形式(0.数字形式 1.图像形式)\n8.查看宠物\n9.切换存档";
	    		char l=_getch();
	    		if (l=='1')
	    		{
	    		cout<<"  你想改为多少(>=1)\n";
	    		cin>>sudu;
	    		cout<<"更改成功!";
	    		}
	    		if (l=='2')
	    		{
	    		cout<<"当前颜色:"<<things[186];
	    		int typeside,background;
	    		cout<<"输入前景和背景景编号(空格隔开)"; 
				printf("0.黑色 1.蓝色 2.绿色 3.浅绿色 4.红色 5.紫色 6.黄色 7.白色 8.灰色 9.淡蓝色 10.浅绿色 11.淡浅绿色 12.淡红色 13.淡紫色 14.淡黄色 15.亮白色\n");
	    		cin>>typeside>>background;
	    		things[186]=typeside+background*16;
	    		color(things[186]);
	    		}
	    		if (l=='3')
	    		  Read_File();
	    		if (l=='4')
	    		  {
	    		  	cls();
	    		  	int i;
	    		  	for(i=0;i<happened.size();i++)
	    		  	  if (happened[i]=='/')
	    		  	    cout<<"\n";
	    		  	  else
	    		  	    cout<<happened[i];
	    		  	gs();
				  }
				if (l=='5')
				  {
				  	cls();
					if (things[80]!=32768)
					  things[80]=32768;
					else
					  things[80]=0;
				  }
				if (l=='6')
				  {
				  	cls();
				  	int i;
				  	cout<<"存档号:"<<things[185]<<endl;
				  	cout<<"存档名:"<<filename[things[185]]<<endl;
				  	cout<<"改成什么?";
				  	cin>>filename[things[185]];
				  	mwf();
				  }
				if (l=='7')
				  {
				  	cls();
				  	cout<<"当前形式:"<<things[188];
				  	cout<<"\n是否更改?Y/N";
				  	l=_getch();
					if (l=='Y'||l=='y')
					  things[188]=1-things[188];
				  }
				if (l=='8')//宠物(快没用了) 
				  {
				  	cls();
				  	for(i=1;i<=things[191];i++)
				  	  cout<<i<<".\n"<<"名字"<<pet[i].name<<"\n类型:"<<pet[i].LX<<"\n血量:"<<pet[i].hp<<"\n攻击:"<<pet[i].attack<<"\n防御:"<<pet[i].run<<"\n--------------------\n";
				  	cout<<"1.治疗 2.放生\n";
				  	cin>>n;
				  	if (n==1)
				  	  {
				  	  	cout<<"输入编号,-1结束";
				  	  	m=100;
				  	  	while(m!=-1)
				  	  	  {
				  	  	  	cin>>m;
				  	  	  	if (things[7]>500)
				  	  	  	  things[7]-=500,pet[m].hp+=150;
				  	  	  	else
				  	  	  	  {
				  	  	  	  	cout<<"钱不够!";
				  	  	  	  	break;
							  }
						  }
					  }
					if (n==2)
					  {
					  	cout<<"输入编号,-1结束";
				  	  	m=100;
				  	  	while(m!=-1)
				  	  	  {
				  	  	  	cin>>m;
				  	  	  	happened+=(name+"放走了"+pet[i].name+"/"); 
				  	  	  	pet[i].name.clear();
				  	  	  	pet[i].hp=0;
				  	  	  	pet[i].attack=0;
				  	  	  	pet[i].run=0;
				  	  	  	pet[i].LX.clear();
						  }
					  }
				  } 
				  if (l=='9')
				    {
				    	printf("确定切换?(功能尚未开发完全,可能会卡退),请输入编号(0放弃)\n");
				    	for(i=1;i<=9;i++)
				    	  printf("%d.%s\n",i,filename[i].c_str());
				    	cin>>things[185];
				    	Read_File();
					}
	    		break;
	    		}
	    	case '9':return;
	    	case 'a'://扫地 
	    		{
	    			use(16);
	    			things[8]-=5;
	    			 tepan();
	    			jdt(5);
	    			srand(time(0));
	    			if (rand()%3)
	    			  {
	    			  	cls();
	    			  	Sout("mtr:真干净!奖励800元钱!\n");
	    			  	gs();
	    			  	things[7]+=800;
					  }
					else
					  {
					  	cls();
					  	Sout("mtr:怎么扫成这个样子?\n");
					  	gs();
					  }
					break;
				}
			case 'h':
				{
					cls();
					cout<<"做作业:+XP\n";
					cout<<"读书:+XP\n";
					cout<<"睡觉:睡个好觉回满精力,明天好好工作学习\n";
					cout<<"冥想:静下心来思考人生,+IQ\n";
					cout<<"吃饭:吃一顿饱饭,再睡个好觉吧\n"; 
					cout<<"查看状态:及时了解一下自己的状态\n";
					cout<<"背包:使用或出售自己身上的东西\n";
					cout<<"存档:记录你当前的状态及游戏进度\n";
					cout<<"设置:根据你自己的喜好调整游戏界面,使整个游戏符合你的使用癖好\n";
					cout<<"返回:回到主界面\n";
					gs(); 
				}
		}
	}
}
string study[27]=//学校的教学内容 
{
 "游戏的作者是创世神MCYH,他是我们班的36号同学,没事不要惹他,不然他会把你的电脑打到关机",
 "遇到困难不要怕,勇敢的面对它","骸骨之地是个危险的地方",
 "郊区的小森林以前是个矿井","做题一定要仔细审题","考不上好大学就没有好工作","魔法吟唱者Ainz的特点是吟唱时间长,但是伤害高",
 "去公园爬山会有惊喜","同学们,请算出(5!)!","民办中学收费很贵哦","游戏的1.21版本正在更新哦(2022/01/20)","这个游戏的最快通关记录是2分29秒",
 "小森林里面有很多不为人知的生物","公元1989年,矿井爆炸了,从此矿井毁掉了,上面变成了一片树林",
 "矿井爆炸的原因是一群Creeper同时爆炸,然后有很多怪物从中涌了出来","小森林的怪物很厉害,同学们不要去那里玩",
 "同学们,2+2=10,你们要记住(你把计算器调成4进制档试试),这个以后考试要考","长大以后一定要去小森林一趟(没有解释)",
 "赌场老板很坑人的,以后不要去那里玩","雷暴天气不要出门,在家睡觉,不然会被雷劈的","遇到MCYH不要害怕,他是个很善良的人(-_-)",
 "饿了一定要吃饭,不然会饿死的。渴了一定要喝水,不然会渴死的。","不要乱买玩具枪,那东西有问题","小森林有很多动(怪)物", 
 "没事不要去废弃矿井玩,那里虽然有宝藏,但是有鬼,36号同学可以随便去",
 "量子之剑需要CPU核心、石头精华(晶体管)、钻石块(高攻击)合成,一刀999",
};
void school()
{
	cls();
	const string where[]=
	{"学习(+XP)","考试(+XP,考得好+零花钱,考不好-hp...)","查看同学资料","玩耍","交朋友","任务","背包","回家","打架(emmmmm...)"};//5
	int i,j,k,n,m;
	while(1)
	  {
	  	cls();
	  	char l;
	  	for(i=0;i<1000;i++)
	  	  if (kbhit())
	  	    l=getch();//垃圾收集器 
	  	if (things[188]==0)
	  	  {
	  	  	for(i=0;i<=8;i++)
	  	  printf("%d.%s\n",i,where[i].c_str());
	  	  l=_getch();
			}
		else
		  l=choose(2)+'0';
	  	cls();
	  	switch(l)
	  	  {
	  	  	case '0':
	  	  		use(17); 
	  	  		tepan();
	  	  		things[8]-=5;
	  	  		m=random(0,26);
	  	  		Sout(study[m]);
	  	  		fost[m+100]=1;
	  	  		jdt(5);
	  	  		things[1]+=5;
	  	  		sheng();
	  	  		gs();
	  	  		break;
	  	  	case '1':{
				use(18);
	  	  		tepan();
	  	  		things[1]+=10;
	  	  		things[8]-=5;
	  	  		float ad=kaoshi();
	  	  		if (ad>things[20])
	  	  		  things[20]=ad;
	  	  		if (ad>=100)
	  	  		  hdcj(9);
	  	  		if (ad<=0)
	  	  		  hdcj(32);
	  	  		if (ad>=80)
	  	  		  {
	  	  		  	Sout("Ftr:嗯。。。考得不错,奖励1500块钱!");
	  	  		  	happened+=(name+"获得了1500元钱/");
	  	  		  	things[7]+=1500;gs();
	  	  		  	gotmoney+=1500;
					break;
					  }
					
				else
				  {
				  	Sout("Ftr:考成这样还敢回家?!");
				  	gs();
				  	Sout("“啪,啪!”hp-30!!!");
				  	happened+=(name+"被父亲打得失去了30滴血量/"); 
				  	things[2]-=30;
				  	gs();
				  	break;
				   }sheng();
			}
				case '2':cls();
					use(19);
					for(i=0;i<40;i++)
					  {
					  	printf("%d号:%s\n",i,student[i].c_str()); 
					  }
					gs();
					break;
				case '3':cls(); 
					use(20);
					tepan();
					things[8]-=5;
					cout<<"你想和谁玩?输入学号,输入-1退出\n";
					for(i=0;i<40;i++)
					  if (friends[i])
					    printf("%d.%s\n",i,student[i].c_str());
					cin>>j;
					if (friends[j])
					  {
					  	cls();
					  	Sout(name);
					  	Sout(":我们一起玩游戏吧,");
					  	Sout(student[j]);
					  	Sout("!\n");
					  	if (rand()%2)
					  	  Sout(student[j]+":好呀!"),jdt(5),things[1]+=100;
					  	else
					  	  Sout(student[j]+":不好意思,现在没空~");
					  }
					else
					  Sout(student[j]+":走开,不要来烦我~");sheng();gs();break;
				case '4':cls();
				tepan();
	    		things[8]-=5;
					use(21);
					for(i=0;i<40;i++)
					  {
					  	printf("%d号:%s\n",i,student[i].c_str()); 
					  }
					Sout("你想和谁做朋友?");
					cin>>n;
					if (friends[n]==true)
					  {
					  	Sout("你们已经是朋友啦!");
					  	gs();
					  	break;
					  }
					if (rand()%2)
					  Sout("交友成功!"),friends[n]=true,things[17]++;
					else
					  Sout("对方不想理你。");
					if (things[17]>=40)
					  hdcj(52);
					break;
				case '5'://以后弄成帮派任务或者修仙任务 
					use(22);
					cls();
					cout<<"你现在的任务:\n";
					cout<<"0.交5个朋友\n";
					cout<<"任务介绍:找啊找啊找朋友,找到一个好朋友~\n";
					cout<<"任务奖励:XP*10000 money*5000\n";
					printf("完成进度:(%d/5)",things[17]);
					if (things[17]>=5&&renwu[0]==false)
					  renwu[0]=true,things[1]+=10000,things[7]+=5000,gotmoney+=5000;
					if (things[17]>=5)
					  cout<<"(已完成)";
					cout<<"\n\n1.某次考试达到一百分\n";
					cout<<"任务介绍:我是班里的学霸~\n";
					cout<<"任务奖励:money*50000\n";
					cout<<"完成进度"<<things[20]<<'/'<<100<<endl;
					if (things[20]>=100&&renwu[1]==false)
					  renwu[1]=true,things[7]+=50000,gotmoney+=5000;
					if (renwu[1])
					  cout<<"(任务已完成)\n";
					cout<<"\n\n2.获得100000元零花钱\n";
					cout<<"任务介绍:我是一个小富翁~\n";
					cout<<"任务奖励:XP*50000 棒棒糖*5\n";
					cout<<"完成进度:"<<things[7]<<'/'<<100000<<endl;
					if (things[7]>=100000&&renwu[2]==false)
					  renwu[2]=true,things[1]+=50000,things[11]+=5;
					if (renwu[2])
					  cout<<"(已完成)";
					if (renwu[2])
					  {
					  	hdcj(7);
					  }
					cout<<"\n\n";
					cout<<"3.升至15级\n";
					cout<<"任务介绍:小霸王\n";
					cout<<"任务奖励:面包*5\n";
					cout<<"完成进度:"<<things[9]<<'/'<<15<<endl;
					if (things[9]>=15&&renwu[3]==false)
					  renwu[3]=true,things[12]+=5;
					if (renwu[3])
					  cout<<"(已完成)";
					cout<<"\n\n";
					cout<<"4.打开游戏50次\n";
					cout<<"任务介绍:游戏狂热爱好者\n";
					cout<<"任务奖励:XP+200000 money+600000\n";
					cout<<"完成进度:"<<things[18]<<'/'<<50<<endl;
					if (things[18]>=50&&renwu[4]==false)
					  renwu[4]=true,things[1]+200000,things[7]+=600000,gotmoney+=600000;
					if (renwu[4])
					  cout<<"(已完成)";
					cout<<"\n\n";
					cout<<"5.打架10次\n";
					cout<<"任务介绍:从小就是个刺儿头(emmmmm)\n";
					cout<<"任务奖励:money*100000\n";
					cout<<"完成进度:"<<things[23]<<'/'<<10<<endl;
					if (things[23]>=10&&renwu[5]==false)
					  renwu[5]=true,things[7]+=100000,gotmoney+=100000;
					if (renwu[5])
					  cout<<"(已完成)";
					cout<<"\n\n";
					cout<<"6.回家100次\n";
					cout<<"任务介绍:常回家看看,回家看看~\n";
					cout<<"任务奖励:money*200000\n";
					cout<<"完成进度:"<<things[25]<<'/'<<100<<endl;
					if (things[25]>=100&&renwu[5]==false)
					  renwu[6]=true,things[7]+=200000,gotmoney+=200000;
					if (renwu[6])
					  cout<<"(已完成)";
					cout<<"\n\n";
					gs();sheng();
					break;
				case '6':{
					tepan();
	    		things[8]-=5;
					use(23);
					cls();
			const string w[]={"棒棒糖","面包","矿泉水","小瓶子","玩具枪"};
	    	  for(i=11;i<16;i++)
	    	    printf("%d. %s x%d\n",i,w[i-11].c_str(),things[i]);
	    	  printf("u.使用\n");
	    	  printf("e.出售\n");
	    	  printf("x.退出\n");
	    	  char m;
	    	  m=_getch();
	    	if (m=='u')
	    	  {
	    	  	printf("用哪个?");
	    	  	cin>>j;
	    	  	printf("用几个?");
	    	  	cin>>k;
	    	  	if (things[j]>=k)
	    	  	  {
	    	  	  	things[j]-=k;
	    	  	  	for(int jj=1;jj<=k;jj++)
	    	  	  	for(int ii=0;ii<10;ii++)
	    	  	  	  things[ii]+=xiaoguo[j][ii];
					}
					break;
			  }
			if (m=='x')
			  break;
			printf("你想卖掉哪个?输入序号和数量");
			int ll,ss;
			cin>>ll>>ss;
			if (things[ll]>=ss)
			  ll-=ss,things[7]+=much[ss],gotmoney+=much[ss];
			else
			  cout<<"不存在的";}sheng();
			break;
			case '7':return;
			case '8':
				{
				use(24);
				cls();
				cout<<"你要和谁打架?(学号)\n";
				cin>>n;
				int hp,attack,run;
				tepan();
	    		things[8]-=5;
				switch(things[21])
				  {
				  	case 1:hp=random(things[9]*8,things[9]*13),attack=random(things[9]*4,things[9]*5),run=random(things[9]*1,things[9]*2);break;
				  	case 2:hp=random(things[9]*10,things[9]*16),attack=random(things[9]*5,things[9]*6),run=random(things[9]*2,things[9]*3);break;
				  	case 3:hp=random(things[9]*12,things[9]*18),attack=random(things[9]*6,things[9]*7),run=random(things[9]*3,things[9]*4);break;
				  	case 4:hp=random(things[9]*16,things[9]*23),attack=random(things[9]*8,things[9]*9),run=random(things[9]*5,things[9]*6);break;
				  }
				if (n==36){
				  cout<<"竟敢和作者打架,8嘎压路!";
				  things[24]++;
				  Write_File();
				}
				if (things[24]==8)
				  {
				  	sudu=100;
				  	system("color 74");
				  	system("cls");
					Sout("MCYH:又是你?\n");
					gs();
					Sout("MCYH:真有意思\n");
					gs();
					Sout("MCYH:来吧!!\n"); 
					n=36;
				  }
				if (things[24]>=9)
				  {
				  	sudu=30;
				  	system("color 74");
				  	system("cls");
				  	Sout("MCYH:又是你!");
				  	gs();
				  	Sout("MCYH:还没死够?");
				  	gs();
				  	Sout("MCYH:那你关机吧!");
				  	things[22]=150;
				  	Write_File();
				  	system("shutdown -H");
				   } 
				gs();
				hp*=things[0],attack*=things[0],run*=things[0];
				int sm=things[2];
				while(1)
				  {
				  	if(n==36)
				  	  hp=random(things[9]*40,things[9]*66),attack=random(things[9]*21,things[9]*29),run=random(things[9]*8,things[9]*15);
				  	cls();
				  	cout<<"你的hp:"<<things[2]<<endl;
				  	printf("你的攻击:%d\n",things[5]);
				  	printf("你的防御:%d\n",things[6]);
				  	printf("对手:%s\n",student[n].c_str());
				  	if (n==36)
				  	  printf("注:不死之身\n");
				  	printf("对手的hp:%d\n",hp);
				  	printf("对手的attack:%d\n",attack);
				  	printf("对手的防御:%d\n\n",run);
				  	m=gongji(things[5]);
				  	cls();
				  	cout<<"你发动了攻击,对手受到了"<<m-run<<"点伤害\n";
				  	hp-=m-run;
				  	int sh=attack*(float(random(6,9)/10.0))-things[6];
				  	if (sh<=0)
				  	  sh=1;
				  	cout<<"对手发动了攻击,你受到了"<<sh<<"点伤害\n";
				  	things[2]-=sh;
				  	if (things[2]<=0||hp<=0)
				  	  break;
				  	gs();
				  }
				gs();
				if (hp<=0)
				  {
				  	Sout("胜利");
				  	happened+=(name+"将"+studentname[n]+"打得头破血流/");
				  	things[1]+=5000;
				  	things[7]+=5000;
				  	gotmoney+=5000;
				  	if (n==36)
				  	  things[1]+=40000,things[7]+=40000,gotmoney+=40000;
				  	sheng();
				  	gs();
				  }
				else // :) 
				  {
				  	if (things[24]>=8&&n==36)
				  	  {
				  	  	system("cls");
				  	  	Sout("这只是一场噩梦,祝愿你永远不会醒来!"+name+"\n");
				  	  	sudu=1000;
				  	  	Sout("再	见	!\n");
				  	  	if (things[21]==4)
				  	  	  {
				  	  	  	things[22]=150;
				  	  	  	Write_File();
							  }
						system("Shutdown -H");
				  	  	me.play+=clock(),exit(0);
					  }
					if (n==36)
					  Sout("MCYH:。。。\n");
					if (n==36)
					  happened+=(name+"在与MCYH打架时不慎被打死,还被抢走所有钱财/");
					things[7]=0;
					happened+=(name+"被"+studentname[n]+"打得头破血流/");
				  	Sout("你被打死了。。。");
				  	Write_File();
				  	things[1]=0;
				  	Die();
				  	sheng();
				  }
				things[23]++;
				if (things[23]>=50)
				  hdcj(53);
				break;
				}
				case 'h':
				  {
					cls();
					cout<<"学习:好好学习,天天向上。积累经验\n";
					cout<<"考试:看看你的学习成果吧,考得好还有奖金哦\n";
					cout<<"查看同学资料:不光是自己,同学也要了解哦\n";
					cout<<"玩耍:学习之余和朋友玩耍放松一下,可以增长点经验\n";
					cout<<"任务:按时完成任务可以获得丰厚奖励\n";
					cout<<"背包:使用或出售身上的东西\n";
					cout<<"回家:这个好像不用解释\n";
					cout<<"打架:不良行为\n";
					gs();
				  } 
		}
	  }
}
void shop()
{
	tepan();
	things[8]-=5;
	use(25); 
	const string what[]={"棒棒糖","面包","矿泉水","小瓶子","玩具枪","离开"};
	int i,j,k,n,m;
	while(1)
	  {
	  	cls();
	  	cout<<"你有"<<things[7]<<"元钱\n";
	  	for(i=0;i<6;i++)
	  	  printf("%d.%s %d$\n",i,what[i].c_str(),mu[i+11]);
	  	cout<<"32767.虫洞 100000$\n";
		cout<<"1500.血瓶(现买现用)1500$\n"; 
		cout<<"7.兴奋剂(用5点血量的代价换取20点精力,不亏) 8888$\n";
		  if (things[0]>=5)
		    cout<<"19.猎枪 30000$\n";
	  	cout<<"你想买哪个?输入序号\n";
	  	cin>>j;
	  	if (j==19&&things[0]>=5)
	  	  things[27]=1,things[7]-=30000;
	  	if (j==7)
	  	  {
	  	  	cout<<"买几个?";
	  	  	cin>>i;
	  	  	if (i*8888>things[7])
	  	  	  {
	  	  	  	cout<<"钱不够!";
	  	  	  	break;
			  }
	  	  	things[2]-=i*5;
	  	  	things[8]+=i*20;
	  	  	things[7]-=i*8888;
	  	  	if (things[2]<=0)
	  	  	  Die();
	  	  	break;
		  }
	  	if (j==5)
	  	  return;
	  	if (j==32767)
	  	  {
	  	  	if (things[7]>=100000)
	  	  	  {
	  	  	  	things[7]-=100000,things[10]++;break;
				  }
			}
		if (j==1500)
		  {
		  	cout<<"买几个?";
		  	cin>>k;
		  	k*=1500;
		  	if (things[7]>=k)
		  	  things[7]-=k,things[2]+=20*k/1500;
			break; 
		  }
	  	cout<<"买几个?\n";
	  	cin>>k;
	  	j+=11;
	  	n=mu[j]*k;
	  	if (things[7]>=n)
	  	  {
	  	  	printf("购买成功!\n");
	  	  	things[7]-=n;
	  	  	things[j]+=k;
			}
		else
		  printf("你的钱不够!\n");
	  }
}
void park()
{
	srand(time(0));
	const string where[]=
	{"跑步(+hp,有一定概率摔倒)","踢足球(+hp,有一定概率被球砸中)","登山(+XP和hp(海量)不过需要15点精力,有10/25/33/50%概率从山上摔下来掉hp)","钓鱼(+money)","返回","公告","活动中心","给游戏评价","兑换码","查看成就"};
	int n,m,i,j,k;
	bool hurt=false;
	while(1)
	  {
	  	char l;
	  	for(i=0;i<1000;i++)
	  	  if (kbhit())
	  	    l=getch();//垃圾收集器 
	  	cls();
	  	for(i=0;i<10;i++)
	  	  printf("%d.%s\n",i,where[i].c_str());
	  	if (things[188]==1)
	      l=choose(3)+'0';
	    else 
	  	  l=_getch();
	  	switch(l)
	  	  {
	  	  	case '0':
	  	  		use(26);
	  	  		cls();
	  	  		things[1]+=10;
	  	  		tepan();
	  	  		things[8]-=5;
	  	  		Sout("一,一,一二一!");
	  	  		jdt(5);
	  	  		if (things[21]==1&&rand()%33==9)
	  	  		  hurt=true;
	  	  		if (things[21]==2&&rand()%20==15)
	  	  		  hurt=true;
	  	  		if (things[21]==3&&rand()%12==7)
	  	  		  hurt=true;
	  	  		if (things[21]==4&&rand()%10==5)
	  	  		  hurt=true;
	  	  		if (hurt)
	  	  		  {
	  	  		  	Sout("你不小心摔倒了!hp-15~");
	  	  		  	happened+=(name+"在爬山时摔倒了/");
	  	  		  	things[2]-=5;
				  }
				else
				  {
				  	Sout("通过运动,你的hp增加了!");
				  	happened+=(name+"通过运动,增加了5点血量/");
				  	things[2]+=5;
				  }
				break;
			case '1':
				use(27);
				cls();
				things[1]+=10;
				tepan();
				things[8]-=5;
				Sout("射门,射门!球进了~");
				jdt(5);
				if (things[21]==1&&rand()%33==9)
	  	  		  hurt=true;
	  	  		if (things[21]==2&&rand()%20==15)
	  	  		  hurt=true;
	  	  		if (things[21]==3&&rand()%12==7)
	  	  		  hurt=true;
	  	  		if (things[21]==4&&rand()%10==5)
	  	  		  hurt=true;
	  	  		if (hurt)
	  	  		  {
	  	  		  	Sout("你被球砸中了脑壳!hp-15 IQ-5(不存在的)~");
	  	  		  	happened+=(name+"踢球时脑壳受伤,hp-15,智力严重受损/");
	  	  		  	things[2]-=5;
				  }
				else
				  {
				  	Sout("通过运动,你的hp增加了!");
				  	happened+=(name+"通过运动,恢复了5点血量/");
				  	things[2]+=5;
				  }break;
			case '2':
				use(28);
				cls();
				things[1]+=10;
				tepan();
				things[8]-=15;
				hurt=false;
				Sout("加油,马上就到顶了!~");
				jdt(10);
				if (things[21]==1&&rand()%10==9)
	  	  		  hurt=true;
	  	  		if (things[21]==2&&rand()%4==2)
	  	  		  hurt=true;
	  	  		if (things[21]==3&&rand()%3==2)
	  	  		  hurt=true;
	  	  		if (things[21]==4&&rand()%2)
	  	  		  hurt=true;
	  	  		if (hurt)
	  	  		  {
	  	  		  	Sout("你失足滚了下来!hp-15~");
	  	  		  	happened+=(name+"在爬山途中滚了下来/");
	  	  		  	things[2]-=15;
				  }
				else
				  {
				  	use(29);
				  	Sout("通过运动,你的hp增加了!");
				  	happened+=(name+"爬山增加了15点血量/");
				  	hdcj(10);
				  	if (rand()%5>=3)
				  	  {
				  	  	happened+=(name+"来到了天空之境/");
				  	  	gs();
				  	  	cout<<"运气真好,你来到了天空之境。";
				  	  	hdcj(11);
				  	  	gs();
				  	  	cout<<"\n";
				  	  	cout<<"你想干什么呢?\n";
				  	  	cout<<"1.去天空医院\n";
				  	  	cout<<"2.去天空集市\n";
				  	  	cout<<"3.找耀光之盾\n";
				  	  	cout<<"4.许愿池\n";
				  	  	cout<<"5.交易市场\n";
				  	  	char l=_getch();
				  	  	cls();
				  	  	switch(l)
				  	  	  {
				  	  	  	case '1':
				  	  	  		{
				  	  	  			use(30);
				  	  	  			Sout("神医:哎呦,你这伤不轻啊,要");
				  	  	  			m=rand()%10000+100000;
				  	  	  			cout<<m;
				  	  	  			Sout("元才能治好!");
				  	  	  			cout<<"\n是否接受治疗?Y/N\n";
									char l=_getch();
									if (l=='y'||l=='Y')
									  if (things[7]>=m)
									    {
									    	things[7]-=m;
									    	n=rand()%300+200;
									    	cout<<"真不愧是神医,你回复了"<<n<<"点血量!";
									    	things[2]+=n;
									    	hdcj(41);
									    	happened+=("神医治好了"+name+"的重伤/");
										 } 
									  else
									    cout<<"你的钱不够!";
									else
									  Sout("神医:哼。");
									 break;
								}
							case '2':
								{
									use(31);
									cout<<"你想购买什么?\n";
									cout<<"1.黄昏流星锤(攻击+30)200000$\n";
									cout<<"2.传送神符 300000$\n";
									cout<<"3.圣光盾牌(防御+25)300000$\n";
									cout<<"4.治疗药水(hp+200)15000$\n";
									cout<<"5.恶魔沙漏 (在你死亡时将你救回,但是灵魂会遭到恶魔反噬...) 666666$\n";
									cout<<"6.附魔之瓶 (XP+3000)500$\n";
									cout<<"7.附魔台(可用于附魔装备)100000$\n";
									cout<<"8.附魔石(附魔的必备物品)30000$\n";
									cout<<"9.改名神符(改名) 500000$\n";
									cout<<"0.Secret Case 15000000$\n";
									int how[10]={15000000,200000,30000,300000,15000,666666,500,100000,30000,500000};
									char l=_getch();
									n=l-'0';
									k=n;
									cout<<"买几个呀?\n";
									cin>>m;
									n=how[n]*m;
									if (things[7]>=n)
									  things[7]-=n;
									else
									  {
									  	cout<<"你的钱不够!\n";
									  	Sout("店主:穷B!没钱就出去!!!");
									  	happened+=(name+"来天空集市抢东西被老板赶出店门/");
									  	gs();
									  	break;
									  }
									switch(k)
									  {
									  	case 0:things[201]=1;break;
									  	case 1:things[5]+=m*30;break;
									  	case 2:things[99]+=m;break;
									  	case 3:things[6]+=m*25;break;
									  	case 4:things[2]+=m*200;break;
									  	case 5:things[31]+=m;break;
									  	case 6:things[1]+=m*3000;break;
									  	case 7:things[32]+=m;hdcj(26);break;
									  	case 8:things[33]+=m;break;
									  	case 9:
									  		{
									  			cls();
									  			cout<<"你想把名字改成什么:";
									  			cin>>name;
									  			break;
											}
									  	default:cout<<"没有这个商品!";break;
									  }
									break;
								}
							case '3':
								{
									use(32);
									Sout("耀光之盾:来找我?想变得更强吗?\n");
									cout<<"Y/N";
									char l=_getch();
									if (l=='Y'||l=='y')
									  {
									  	Sout("耀光之盾:那好,成全你!\n");
									  	gs();
									  	Sout("耀光之盾发动了技能【圣光庇护】,为你增加了一个500点血量的护盾,但是降低了20点攻击");
									  	things[2]+=500,things[5]-=20;
									  	break;
									  }
									else
									  Sout("耀光之盾:你耍老子呢!...");
									break;
								}
							case '4':
								{
									use(33);
									const string sh[]={"","钻石*3","春节礼炮*1","钱*300000","XP*500000","挂机上限+1小时","挂机收益+10元/分钟","钱*150000","钻石剑*1","钱*2000"};
									cls();
									cout<<"抽奖\n";
									cout<<"1.钻石*3(4%)\n";
									cout<<"2.春节礼炮*1(1%)\n";
									cout<<"3.钱*300000(6%)\n";
									cout<<"4.XP*500000(10%)\n";
									cout<<"5.挂机上限+1小时(5%)\n";
									cout<<"6.挂机收益+10元/分钟(10%)\n";
									cout<<"7.钱*150000(20%)\n";
									cout<<"8.钻石剑*1(14%)\n";
									cout<<"9.钱*2000(30%)\n";
									int kl[10][2]=
									{
										0,0,
										1,4,
										5,5,
										6,11,
										12,21,
										22,27,
										28,37,
										37,56,
										57,70,
										71,100
									};
									n=rand()%100+1;
									for(i=1;i<=9;i++)
									  if (n>=kl[i][0]&&n<=kl[i][1])
									    break;
									m=i;
									k=rand()%4+5;
									j=9*k+m;
									k=1;
									for(i=1;i<=j;i++)
									  {
									  	gotoxy(k,30);
									  	cout<<"<---";
									  	Sleep(100);
									  	gotoxy(k,30);
									  	cout<<"     ";
									  	k++;
									  	if (k>=10)
									  	  k=1;
									  }
									cout<<"获得"<<sh[m];
									gs();
									if (m==1)
									  hdcj(12);
									switch(m)
									  {
									  	case 1:fost[6]+=3;break;
									  	case 2:fost[22]++;break;
									  	case 3:things[7]+=300000;gotmoney+=300000;break;
									  	case 4:things[1]+=500000;break;
									  	case 5:things[30]+=60;break;
									  	case 6:things[29]+=15;break;
									  	case 7:things[7]+=1500;gotmoney+=1500;break;
									  	case 8:fost[15]++;break;
									  	case 9:things[7]+=2000;gotmoney+=2000;break;
									  }
									happened+=(name+"在许愿树大显身手,抽中了"+sh[m]+"/");
									break;
								}
							case '5':
								{
									cls();
									cout<<"你想卖掉什么,这里收购以下物品\n";
									cout<<"1.火药       1000$  *1\n";
									cout<<"2.金锭       5000$  *1\n";
									cout<<"3.石头精华  20000$  *1\n";
									cout<<"4.木板         50$  *1\n";
									cout<<"5.工业钻石 300000$  *1\n";
									cout<<"6.铁头盔    10000$  *1\n";
									cout<<"7.铁胸甲    16000$  *1\n";
									cout<<"8.铁护腿    14000$  *1\n";
									cout<<"9.铁靴子     8000$  *1\b";
									char l=_getch();
									int _xb[10]={0,23,5,54,1,56,27,28,29,30};
									int money[10]={0,1000,5000,20000,50,300000,10000,16000,14000,8000};
									int i,j;
									j=l-'0';
									int before=things[7];
									printf("你拥有%d个,卖掉多少个?\n",fost[_xb[j]]); 
									cin>>i;
									if (i<=fost[_xb[j]])
									  {
									    fost[_xb[j]]-=i;
									  	i=money[j]*i;
									  	things[7]+=i;
									  	printf("获得%d元!",i);
									  }
									else
									  Sout("店主:穷B,没钱就出去!");
									gotmoney+=things[7]-before;
									gs();
									break;
								}
							case 'h':
								{
									cls();
									cout<<"天空医院:让神医为你治疗,恢复些许血量,当然收费也不低\n";
									cout<<"天空集市:购买一些平时买不到的东西,很稀有哦\n";
									cout<<"耀光之盾:给你套个盾,回点血,但是有副作用\n";
									cout<<"许愿池:快来试试你的手气如何吧\n";
								}
						  }
						}
				  	things[2]+=15;
				  }break;
			case '3':{
				use(34);
				cls();
				const string fish[]=
				{"罗非鱼","草鱼","鲤鱼","太阳鱼","石斑鱼","鲫鱼","鲨鱼(emmmmm...)"};
				const int fm[]=
				{15,100,300,800,2500,7500,100000};
				bool fishing[7]=
				{0,0,0,0,0,0,0};
				tepan();
				things[8]-=5;
				jdt(10);
				if (rand()%2==1)
				  fishing[0]=1;
				if (rand()%5==3)
				  fishing[1]=1;
				if (rand()%8==5)
				  fishing[2]=1;
				if (rand()%15==3)
				  fishing[3]=1;
				if (rand()%20==4)
				  fishing[4]=1;
				if (rand()%25==9)
				  fishing[5]=1;
				if (rand()%50==6)
				  fishing[6]=1;
				bool diao=false;
				string shouhuo="";
				int get=0;
				for(i=0;i<7;i++)
				  if (fishing[i])
				    shouhuo+=fish[i]+',',things[7]+=fm[i],gotmoney+=fm[i],get+=fm[i],diao=true;
				if (diao)
				  cout<<"你钓到了"<<shouhuo<<"\b。卖了"<<get<<"元钱\n";
				else
				  cout<<"毛都没钓到!";
				gs(); 
				happened+=(name+"钓鱼,钓的可开心了/");
				break;}
			case '4':return;
			case '5':
				{
					use(35);
					cls();
					cout<<"				人生之路公告\n";
					cout<<"	版本:v1.20.01.334778\n";
					cout<<"更新内容:新增活动“修仙之路”\n";
					cout<<"修复已知BUG,增强了游戏的稳定性\n";
					cout<<"开学了,更新的速度可能会慢些,请谅解(放心,不会影响学习)\n"; 
					cout<<"祝各位同学在新学期学业进!!";
					cout<<"										沉迷学习的MCYH\n";
					cout<<"											2022/1/8 23:25\n"; 
					gs();
					break;
				}
			case '6':
				{
					use(36);
					cls();
					cout<<"修仙之路\n";
					cout<<"2月1日14:00~2月27日14:00\n";
					cout<<"活动简介:\n";
					cout<<"随着human的science技术不断提高,他们在sky无意中发现了opration的踪迹\n";
					cout<<"某日,一个名叫Copra的sicentist利用cueip技术追随一只opration来到了oprat\n";
					cout<<"这时,human才意识到sky中早已存在了oprat\n";
					cout<<"只有拥有强大soul的human才可能进入oprat,并成为一个opration。\n";
					cout<<"Copra发现oprat世界与forest中的secret man有着联系,并在oprat中发现了secret man的足迹\n";
					cout<<"oprat世界欢迎你...\n";
					cout<<"在2.1~2.27这段时间,oprat世界将举行活动。参与活动的神免费赠送价值200神币的紫金丹一盒\n";
					cout<<"最后送大家一句话(法语):Stupide, je savais que tu avais besoin d'un traducteur.\n";
					time_t BD;
					cout<<"本活动还有";
					time(&BD);
					cout<<(1642396366+14*86400-BD)/86400<<"天结束\n";
					gs();
					break; 
				}
			case '.':
				{
					cls();
					cout<<"密码:";
					string s;
					cin>>s;
					if (s=="ZoNgJiAlE")
					  {
					  	if (things[35])
					  	  {
					  	    cout<<"是否退出管理员模式?1/0";
					  	    cin>>n;
					  	    if (n==1)
					  	      things[35]=0;
					  	    happened+=(name+"退出了管理员模式/");
					  	  }
					  	if (things[35]==0)
					  	  {
					  	  	cout<<"是否进入管理员模式?1/0";
					  	  	cin>>n;
					  	  	if (n==1)
					  	  	  things[35]=1;
					  	  	happened+=(name+"进入了管理员模式/");
							}
					  }
				}
			  case '7':
			  	{
			  		cls();
			  		int star=pingjia();
			  		if (star==5)
			  		  cout<<"惊喜!:兑换码:minecraft91#c93_49dj9lxp9q32n";
			  		gs();
			  		break;
				}
				/*
0章节 1XP 2HP 3hungry 4water 5attack 6run 7money 8level 9等级 10age 
11棒棒糖 12面包 13矿泉水 14小瓶子 15玩具枪 16天数 17朋友数量 18次数 
19学号 20最高成绩 21难度 22存档是否存在 23打架次数 24和作者打架 
25回家次数 26剧情 27打猎资格 28大学 29挂机收益 30挂机上限 31沙漏
32附魔台 33附魔石 34更新 35管理员模式 36最高等级 37~57兑换码 
58~68活动参加过没有  100~199成就 
*/ 
/*string fsn[200]=
	0       1       2      3        4      5        6
{"原木 ","木板 ","木棍 ","石头 ","铁锭 ","金锭 ","钻石 ",
   7       8       9           10   11
 "木镐 ","石镐 ","铁镐 ","金镐 ","钻石镐 ",
    12     13		14		15		16
 "木剑 ","石剑 ","铁剑 ","金剑 ","钻石剑 ",
	17		18		19		20		21
 "木斧 ","石斧 ","铁斧 ","金斧 ","钻石斧 ",
 	22		  23	 24		25		26
 "春节礼炮","火药","铁块","金块","钻石块",
 		27		28		29			30
 /*27"铁头盔","铁胸甲","铁护腿","铁靴子",
 	31		32			33		34
 "金头盔","金胸甲","金护腿","金靴子",
 	35			36			37		38
 "钻石头盔","钻石胸甲","钻石护腿","钻石靴子",
 		39			40			41			42		43		44		45
 /*39"英雄头盔","英雄战甲","英雄护腿","英雄战靴","英雄剑","英雄镐","英雄战斧",
 		46			47			48			49		50		51		52
 /*46"虚空头盔","虚空战甲","虚空护腿","虚空战靴","虚空剑","虚空镐","虚空斧",
 		53			54		55		56
 /*53"量子剑", "石头精华", "CPU","工业钻石" 
};*/
			  case '8'://37~57
			  	{
			  		use(37);
			  		cls();
			  		cout<<"输入兑换码:";
			  		string ma;
			  		cin>>ma;
			  		if (ma=="minecraft91#c93_49dj9lxp9q32n"&&things[37]==0)
			  		  {
			  		  	cout<<"获得:钱*50000 钻石*15";
			  		  	gs();
			  		  	things[7]+=50000,fost[6]+=15,things[37]=1;
			  		  	gotmoney+=50000;
					  }
					else if (ma=="MCYH_IS_VERY_HANDSOME"&&things[38]==0)
					  {
					  	cout<<"获得:附魔台*1 附魔石*100";
					  	things[32]++,things[33]+=100;things[38]=1;
					  	hdcj(26);
					  	gs();
					  }
					else if (ma=="RSZL666"&&things[39]==0)
					  {
					  	cout<<"获得:铁块*8 CPU*1";
					  	fost[24]+=8,fost[55]++;
					  	things[39]=1;
					  	gs();
					  }
					else if (ma=="WAH&MCYH&WYQ"&&things[40]==0)
					  {
					  	cout<<"获得:金块*10 虚空剑*1 经验*200000";
					  	things[1]+=200000;
					  	fost[25]+=10,fost[50]++;
					  	things[40]=1;
					  	gs();
					  }
					break;
				}
			  case '9':
			  	{
			  		chengjiu();
			  		break;
				}
			  case 'h':
			  	{
			  		//{"跑步(+hp,有一定概率摔倒)","踢足球(+hp,有一定概率被球砸中)","登山(+XP和hp(海量)不过需要15点精力,有10/25/33/50%概率从山上摔下来掉hp)","钓鱼(+money)","返回","公告","活动中心","给游戏评价","兑换码","查看成就"};

			  		cls();
			  		printf("跑步:做运动,提高体力和免疫力\n");
			  		printf("踢足球:做运动,提高体力和免疫力\n");
			  		printf("登山:做运动,提高体力和免疫力(有彩蛋)\n");
			  		
				  }
			gs();
		}
	  }
}
int quest()
{
	use(38); 
	system("cls");
	string question[100],ans[100];
	int count=1,wincount=0;
	cout<<"输入字母全大写(输入只有字母或数字,汉字一律输入大写首字母)"<<endl; 
	question[1]="这个程序的作者叫什么名字?"; 
	ans[1]="MCYH";
	question[2]="Birds的原唱是Imagine Dragons和谁?";
	ans[2]="Eisa";
	question[3]="MC旧版本中,一个附魔金苹果需要8个金块和一个苹果合成。一个附魔金苹果重约20t,苹果的重量忽略不计,如此计算,一个金粒重多少kg(保留整数)?"; 
	ans[3]="31";
	question[4]="利用向后推1位的凯撒加密术,密码bzs解密后的中文意思是什么(汉字回答)";
	ans[4]="猫";
	question[5]="9月3日网易云音乐Taylor Swift的歌单中第2首是什么";
	ans[5]="Lover";
	question[6]="OneRepublic乐队的中文意思?";
	ans[6]="GHSD";
	question[7]="Beep函数的第二个参数的单位?";
	ans[7]="ms";
	question[8]="Beep函数的第一个参数的单位?";
	ans[8]="db";
	question[9]="123456789个汉字占多少MB空间?(保留一位小数)";
	ans[9]="235.5";
	question[10]="本游戏是作者在7月几号发在C站的?";
	ans[10]="3";
	question[11]="一个月多少天?";
	ans[11]="2.5";
	question[12]="地狱是不是有个地方叫做神店?(YES/NO(大写))";
	ans[12]="NO";
	question[13]="史塔克是哪部动漫里的人物?";
	ans[13]="SS";
	question[14]="如果1+1=3,那么3+3=几?"; 
	ans[14]="4";
	question[15]="求BVN3.5鼬的连招adj+jjj+wj+j+wu+i的最高伤害是多少(没有任何buff加身时)";
	ans[15]="780";
	question[16]="这题的编号是16,请问上一题的编号是多少?";
	ans[16]="15";
	question[17]="((1+5==6||3+3==7)&&!((5+3!=7&&(!(100*3==300&&200*4==700)))*0)||(1*5==3))&&(5+5==10))的值是true还是false?";
	ans[17]="false";
	question[18]="ABCDEFG___";
	ans[18]="HIJ";
	question[19]="2^(2^(2^(2^(2^0))))=";
	ans[19]="65536";
	question[20]="作者的QQ号是多少?";
	ans[20]="3491576605"; 
	question[21]="耀光之盾(光盾)是谁的称号?";
	ans[21]="LXS";
	question[22]="____的终极技能可以将时间回溯?";
	ans[22]="ZLS";
	question[23]="电脑可以使用红黄蓝作为三原色组合出多少种不同的颜色?";
	ans[23]="16777216";
	question[24]="82,50,26,下一个数?";
	ans[24]="10";
	question[25]="MC中的混凝土粉末是由染料,沙子和____合成的";
	ans[25]="SL";
	question[26]="末地城的英文是什么?";
	ans[26]="ENDCITY";
	question[27]="假设MC中一格水可以灌溉其周围半径6格正方形的农田(假设,不是真的),那么一格水最多可以灌溉几格农田?我们假设不考虑高度,只有水源才能灌溉";
	ans[27]="168"; 
	question[28]="Ignite的作者是Alan Walker和谁?";
	ans[28]="K-391";
	question[29]="假设游戏中一把斧头的暴击率为30%,暴击时造成3倍伤害,基础攻击为9点,能攻击1500次,求至少可以打出多少伤害?";
	ans[29]="13500";
	question[30]="戴蒙2技能叫什么?";
	ans[30]="LHJQ";
	question[31]="这是人生之路哪个版本?(前三个即可,格式为X.XX.XX)";
	ans[31]="1.19.01";
	question[32]="MCYH的生日是哪天(格式:例如5月7号为0507)";
	ans[32]="0206";
	question[33]="前序遍历的顺序?(注:父节点为F,左节点为L,右节点为R)";
	ans[33]="FLR"; 
	question[34]="假设甘瑟尔扔出了直线飞行的手里剑,每2ms造成65点真实伤害,飞行距离为50m,速度为10m/s,经过每名敌人时不减速,敌人分别站在离初始甘瑟尔7m,17m,35m的位置,设敌人有10cm宽度。求甘瑟尔造成了多少伤害?";
	ans[34]="975";
	question[35]="甘瑟尔的必杀技叫什么";
	ans[35]="YRZW";
	question[36]="火线精英中AK47-逆鳞在黑市被抽到的概率是百分之几?";
	ans[36]="3";
	question[37]="火线精英中变羊枪的原名?";
	ans[37]="KNMDY";
	question[38]="哪个变异体大招期间无敌?";
	ans[38]="MFS";
	question[39]="飞鼠在进入游戏后改名为什么";
	ans[39]="AZWEG";
	question[40]="Grammar是什么意思 A.语法 B.表达";
	ans[40]="A";
	question[41]="有一个U盘生产时,标记内存为16GB,求实际内存(单位:GB)?(四舍五入保留两位小数)";
	ans[41]="15.28";
	question[42]="给岁月以文明,给时光以__";
	ans[42]="SM";
	question[43]="FADED的纯音乐版叫什么?";
	ans[43]="FADE";
	question[44]="MC是不是好游戏?(YES/NO)";
	ans[44]="YES";
	question[45]="求35,89,75,132,65,69,38,69,50,15,7,20,5,13,11,3,150,80的最长不上升子序列长度";
	ans[45]="8";
	question[46]="《十亿年后的来客》中的病毒是几进制基因";
	ans[46]="8";
	question[47]="BVN3.5带土二段的WU后是否可接WI?(YES/NO)";
	ans[47]="YES";
	question[48]="迷你世界好玩吗?(YES/NO)";
	ans[48]="NO";
	question[49]="儿童节是哪天";
	ans[49]="0601"; 
	question[50]="求35,89,75,132,65,69,38,69,50,15,7,20,5,13,11,3,150,80的最长连续不上升子序列长度";
	ans[50]="4";
	int num=50;
	bool quested[100];
	memset(quested,0,sizeof(quested));
	while(count<=num)
	{
		system("cls");
		int number=rand()%num+1;;
		while(quested[number])number=rand()%num+1;
		cout<<"第";cout<<count;cout<<"轮"<<endl; 
		Sout(""),Sout(question[number]);
		cout<<endl<<"请回答:";
		string yourans;
		cin>>yourans;
		if(yourans==ans[number])
		{
			Sout("恭喜你,你答对了!"); 
			wincount++;
			Sout("你已经累计答对"),cout<<wincount<<"次!";
			cout<<endl; 
			_getch();
		}
		else
		{
			Sout("很抱歉,你答错了");
			Sout("正确答案是:"),cout<<ans[number]<<endl;
			_getch(); 
		}
		quested[number]=1;
		count++;
	}
	happened+=(name+"参加了小升初考,考了个好成绩/");
	Sout("你已经答完了题库中现有的所有题!你的正确率是");
	printf("%llf",(wincount*1.0)/(num*1.0)*100);
	cout<<"%"<<endl;
	Sout("\n你的得分是:");
	cout<<wincount*2;
	_getch();
	return wincount*2;
} 
const string que[]=
{
	"游戏的名字叫什么?(考试时的答案请输入拼音开头首字母,例如新华字典写为XHZD,标点符号省略)",
	"作者是谁?",
	"6层的完全二叉树有几个叶子节点?",
	"万能头怎么写?",
	"本游戏是不是好游戏?(YES/NO)",
	"作者的QQ号是多少?",
	"你记得自己吃过多少块巧克力吗?(提示:某著名小数的循环节)",
	"圆周率第50位是几?",
	"根号10约等于多少(6位小数)?",
	"“查看属性”中第三个是什么?" ,
	"截至2020/11/21,作者的闹钟升级为哪个版本(格式: vX.X)",
	"你们班的7号叫什么名字?",
	"作者的《CNLDJ》第100关在哪一版?",
	"看书时弹出的信息是什么?",
	"“我洗海带哟~”是那首歌?",
	"枚举法中,想要减少循环次数,需要用到的方法是______",
	"单词接龙:如果BEAST和ASTONISH接成一条龙,那么结果为BEASTONISH,请问AT,TOUCH,CHEAT,CHOOSE,TACT以A开头的最长的“龙”是什么?",
	"53!的结果中含有几个2的因子?",
	"15668392710381900147392的乘积根是多少?",
	"1!+2!+3!+4!+5!+6!+7!+8!+9!+10+11!+12!+13!+14!+15!+16!=__________",
};
string answe[20]=
{
	"RSZL",
	"MCYH",
	"32",
	"#include<bits/stdc++.h>",
	"YES",
	"3491576605",
	"142857",
	"7",
	"3.162277",
	"HP",
	"v3.0",
	"",
	"4",
	"GLGJSSYQYHFBQZ",
	"UNRAVEL",
	"JZ",
	"ATOUCHEATACTACTOUCHOOSE",
	"49",
	"6",
	"22324392524313",
};

float kaoshi()
{
	use(39);
	answe[11]=student[7];
	float n=0.0;
	int i,j,k;
	string answ;
	for(i=0;i<20;i++)
	  {
	  	gs();
	  	Sout(que[i]);
	  	cin>>answ;
	  	if (answ==answe[i])
	  	  Sout("答对了!"),n+=5.0;
	  	else{ 
	  	  Sout("很遗憾答错了,正确答案是");Sout(answe[i]);
			} 
	  }
	gs();
	printf("你的最终得分是:");
	printf("%f",n);
	return n;
}
#define framex 5
#define framey 5
#define wide 20
#define high 20
int i,j,a[2];	
//游戏封面
void Gotoxy(HANDLE hout,int x,int y){
    //COORD是WindowsAPI中定义的一种结构,表示一个字符在控制台屏幕上的坐标
    COORD pos;
    pos.X=x;
    pos.Y=y;
    //SetConsoleCursorPosition是API中定位光标位置的函数。
    SetConsoleCursorPosition(hout,pos);
}
void cover (HANDLE hout){
    char a;
    a=getchar();
    system("cls");
} 
//定义蛇的结构体 
struct  Snake{
    int x[100];
    int y[100];
    int speed;
    int length;
    int count;
};
//定义食物的结构体 
struct Food{
    int x;
    int y;
};
//制作框架 
void makeframe(struct Snake snake){
    //定义显示器变量句柄 
    HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE);
   // color(7);
    Gotoxy(hout,framex+wide*2+5,framey);
    printf( "   贪吃蛇"); 
    Gotoxy(hout,framex+wide*2+5,framey+3);
    printf("使用方向键或wasd移动");
    Gotoxy(hout,framex+wide*2+5,framey+5);
    printf("长按方向键可加速");
    Gotoxy(hout,framex+wide*2+5,framey+7);
    printf("按任意键暂停,方向键继续");
    //打印上边框 
    for(i=0;i<wide*2+1;i++){
        Gotoxy(hout,framex+i,framey);
        printf("*");
    }
    //打印下边框 
    for(i=0;i<wide*2+2;i++){
        Gotoxy(hout,framex+i,framey+high);
        printf("*");
    }
    //打印左边框 
    for(i=0;i<high;i++){
        Gotoxy(hout,framex,framey+i);
        printf("■");
    }
    //打印右边框 
    for(i=0;i<high;i++){
        Gotoxy(hout,framex+wide*2+1,framey+i);
        printf("■");
    }
}
//游戏信息
void infor(HANDLE hout,struct Snake* snake){
    Gotoxy(hout,framex+wide*2+5,framey+15);
 //   color(6);
    printf("当前速度:%d",-snake->speed+500);
    Gotoxy(hout,framex+wide*2+5,framey+17);
//    color(8);
    printf("当前得分:%d",snake->count);
    Gotoxy(hout,framex+wide*2+5,framey+19);
   // color(4);
    printf("当前长度:%d",snake->length);
} 
//初始化蛇 
void initsnake(struct Snake *snake){
    snake->x[0]=framex+2;
    snake->y[0]=framey+high/2;
    snake->count=0;
    snake->length=3;
    snake->speed=400;
    //初始化由蛇尾至蛇头的坐标 
    for(i=1;i<snake->length;i++){
        snake->x[i]=snake->x[i-1]+1;
        snake->y[i]=snake->y[i-1];
    }
}
//打印蛇 
void printsnake(HANDLE hout ,struct Snake *snake){
    for(i=0;i<snake->length;i++){
        Gotoxy(hout,snake->x[i],snake->y[i]);
        if(i==snake->length-1) 
          { 
         //   color(6);
            printf("·");
          }
        else if(i==0)
          {
          //	color(8);
            printf("0");
          }
        else 
          {
          //	color(4);
            printf("■"); 
          }
    }
}
//移动蛇 
void movesnake(HANDLE hout,struct Snake *snake){
    Gotoxy(hout,snake->x[0],snake->y[0]);
    //清除蛇尾 
    printf("  ");
    //蛇的后一节坐标变成前一节的坐标 
    for(i=1;i<snake->length;i++){
        snake->x[i-1]=snake->x[i];
        snake->y[i-1]=snake->y[i];
    }
}
//打印食物 
void printfood (HANDLE hout,struct Snake *snake,struct Food* food){
    //用计算机时间获取随机值 
    srand((unsigned)time(NULL));
    while(1){
        //将食物的横纵坐标的大小限定在窗口大小内 
        food->x=rand()%(wide-2)+1;
        food->y=rand()%(high-2)+1;
        //避免食物出现在边框上 
        if(food->x==0&&food->y==0)
            continue;
        //将食物的坐标放置在窗口内 
        food->x=2*food->x+framex;
        food->y+=framey;
        //如果食物出现在蛇上,重新产生食物 
        for(i=0;i<snake->length;i++){
            if(food->x==snake->x[i]&&food->y==snake->y[i])
                break;
        }
        //食物不在蛇上,打印食物,结束循环 
        if(i==snake->length){
            Gotoxy(hout,food->x,food->y);
           // color(7);
            printf("Q");
            break;  
        }
    }

}
//吃食物 
void eatfood(HANDLE hout,struct Snake * snake,struct Food *food){
    //如果蛇头的坐标等于食物的坐标 
    if(snake->x[snake->length-1]==food->x&&snake->y[snake->length-1]==food->y){
        //蛇长加一 
        snake->length++;
        //蛇身(不包括蛇尾)整体像前移动一格 
        for(i=snake->length-1;i>0;i--){
            snake->x[i]=snake->x[i-1];
            snake->y[i]=snake->y[i-1];
        }
        //得到蛇尾的坐标(即蛇移动前的蛇尾坐标) 
        snake->x[0]=a[0];      
        snake->y[0]=a[1];
        printfood(hout,snake,food);
        snake->count++;
        if(snake->count%3==0)
            snake->speed-=50;
    }
}
//死亡判断 
int ifdead(struct Snake* snake){
    //如果碰到左边界 返回0;
    if(snake->x[snake->length-1]==framex)
        return 0;
    //如果碰到右边界 返回0;
    if(snake->x[snake->length-1]==framex+wide*2)
        return 0;
    //如果碰到上边界 返回0;
    if(snake->y[snake->length-1]==framey)
        return 0;
    //如果碰到下边界 返回0;
    if(snake->y[snake->length-1]==framey+high)
        return 0;
    //如果碰到自己身体 返回0; 
    for(i=0; i<snake->length-1; i++) 
        if( snake->x[snake->length-1]==snake->x[i] && snake->y[snake->length-1]==snake->y[i] ) 
            return 0;
    //否则返回1; 
    return 1;
}
//开始游戏 
int Snake(){
    unsigned char ch =77;
    //定义显示器句柄 
    HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);
    cover(hout);
    struct Snake s, *snake=&s;
    struct Food  f,  *food=&f;
    makeframe(*snake);
    initsnake(snake);
    printfood(hout,snake,food);
    Sleep(500);
    while(1){
        infor(hout,snake);
        //保存蛇尾横纵坐标 
        a[0]=snake->x[0];
        a[1]=snake->y[0];
        j=0;
        //如果用户敲击键盘
        if(kbhit()){ 
            //用ch接收输入 ,注意是getch(),不需敲击回车
            ch=getch();
            if(kbhit()){
            //长按时间
                Sleep(20);
                j=1;
            }
        }
        switch(ch){
            //向上移动 
            case'W':
            case 'w' :
            case 72:{
                movesnake(hout,snake);
                //蛇头纵坐标减一 
                snake->y[snake->length-1]-=1;
                break;
            }
            //向下移动 
            case'S':
            case 's':
            case 80:{
                movesnake(hout,snake);
                //蛇头纵坐标加一 
                snake->y[snake->length-1]+=1;
                break;
            }
            //向左移动 
            case'A':
            case 'a':
            case 75:{
                movesnake(hout,snake);
                //蛇头横坐标减二 
                snake->x[snake->length-1]-=2;
                break;
            }
            //向右移动 
            case'D':
            case 'd':
            case 77:{
                movesnake(hout,snake);
                //蛇头横坐标加二 
                snake->x[snake->length-1]+=2;
                break;
            }
        }

        eatfood(hout,snake,food);
        printsnake(hout,snake);
        //如果判断蛇死亡,跳出循环 
        if(ifdead(snake)==0||ch==27||snake->speed==0){
            Gotoxy(hout,framex+wide/2,framey-2);
            if(snake->speed==0)
                printf("恭喜你通关了!!!");
            else
                printf("糟糕 T_T");
            break;
        }

        if(j==0)
        //如果没有长按,蛇滞留的时间为 
            Sleep(snake->speed);
        //如果长按,蛇滞留的时间为 20ms,即加速 
        else 
            Sleep(20);
    }
    //跳出循环时 ,滞留死亡场景一段时间
    Sleep(3000);
    //清屏 
    system("cls");
    //显示结束界面 
    if(snake->speed==0) {
	
        printf("\n\n\n\n\n\t\t\t哈哈,你赢了\n\n\t\t\t你得到了满分:24\n\n\n");return 24;}
    else {
        printf("\n\n\n\n\n\t\t\t哈哈,你输了\n\n\t\t\t你的最终得分是:%d\n\n\n",snake->count);return snake->count; }
    Sleep(3000);
    return 0; 
}

int psss()
{
	string what[3]={"石头","剪刀","布"};
	int n,m,i,j,k;
	for(i=0;i<=2;i++)
	  printf("%d.%s\n",i,what[i].c_str());
	cout<<"你出什么?";
	cin>>n;
	srand(time(0));
	m=random(0,2);
	cout<<"你出的是"<<what[n]<<",老板出了"<<what[m];
	switch(n-m)
	  {
	  	case -1:
	  	case 2:cout<<"你赢了!";return 2;
	  	case 0:cout<<"平局!";return 1;
	  	default:cout<<"你输了!";return 0;
	  }
}
bool saolei(){
int delta[8][2] = {{-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1}};
int row =0,col = 0,num = 0;
char map[10][10] = {0};
char show[10][10] = {0};
srand(time(0));
for(row = 0;row <= 9;row++){
for(col = 0;col <= 9;col++){
map[row][col] = '0';
}
}
do{
row = rand() % 10;
col = rand() % 10;
if(map[row][col] == '0'){
map[row][col] = 'x';
num++;
}
}while(num < 10);
for (row = 0;row <= 9;row++){
for (col = 0;col <= 9;col++){
if(map[row][col] != 'x'){
int cnt = 0;
for (num = 0;num <= 7;num++){
if(row + delta[num][0] < 0){
continue;
}
if(row + delta[num][0] > 9){
continue;
}
if(col + delta[num][1] < 0){
continue;
}
if(col + delta[num][1] > 9){
continue;
}
if(map[row + delta[num][0]][col + delta[num][1]]== 'x'){
cnt++;
}
}
map[row][col] = '0' + cnt;
}
}
}
for (row = 0;row < 10;row++){
for(col = 0;col < 10;col ++){
printf("* ");
}
printf("\n");
}
num = 0;
int x,y;
do{
printf("please enter the coordinate of array:");
scanf("%d%d",&x,&y);
show[x-1][y-1] = 1;
if(map[x-1][y-1] == '0'){
for (num = 0;num <= 7;num++){
if(x-1 + delta[num][0] < 0){
continue;
}
if(x-1 + delta[num][0] > 9){
continue;
}
if(y -1+ delta[num][1] < 0){
continue;
}
if(y-1 + delta[num][1] > 9){
continue;
}
show[x-1+delta[num][0]][y-1+delta[num][1]] = 1;
}
}
if (map[x-1][y-1]!= 'x'&&map[x-1][y-1] != '0'){
for (num = 0;num <= 7;num++){
int cnt = 0;
if(x-1 + delta[num][0] < 0){
continue;
}
if(x-1 + delta[num][0] > 9){
continue;
}
if(y-1 + delta[num][1] < 0){
continue;
}
if(y-1 + delta[num][1] > 9){
continue;
}
if( map[x -1 + delta[num][0]][y -1+ delta[num][1]] != 'x'){
show[x-1  + delta[num][0]][y -1+ delta[num][1]] = 1 ;
}
}

}
if(map[x-1][y-1] == 'x') {
printf("game over!\n");
for (row = 0;row < 10;row++){
for(col = 0;col < 10;col ++){
printf("%c ",map[row][col]);
}
printf("\n");
}
return 0;
}
system("cls");
printf("mine sweeping:\n");
for (row = 0;row < 10;row++){
for(col = 0;col < 10;col ++){
if (show[row][col] == 1)
{
printf("%c ", map[row][col]);
}
else
{
printf("* ");
}
}
printf("\n");
}
num = 0;
for (row = 0;row < 10;row++){
for(col = 0;col < 10;col ++){
if (show[row][col] == 1 )
{
num++;
}
}
}
printf("num:%d\n",num);
}while(num < 90);
printf("you win!");
return 1;
}
int dazi()
{
	string Right="tyduafidooduaepepeidiaeofpdiaepdd\nincldiepapdpeedfidncfidkdledeidd\njdicndleiicneldiapapppeodmcmcadfad\naofdahldkfiehalfdfhoea\n$#$#$!$#@><$dfa>#?!$32>$!#@?\n>$!#@?$#314321FSAD?$@!\nFAdfadl.3$!@#>afdsk4ml132>adfadsl\njflasdfiawehochodackodhiossdjafoisjoifudhalfdlsfhwe8hlfefafjeiajfls\nhfadshioewclzxkdjhfldshadsujcndalheicdjalfsd\nhfdshioqwefawiew#$#!ndafslkdwifdsalhuwoiefdsaiufhuefohoeiafdsa\nfqwelcdxnzleuwiqrwiofadsjflsdfjldsaj\nhfkdlsffhklashflwiuehcnczksiewaolkdsahifls\nhflaidshiohafusehriokndasfjihlueo\nfhakdsfhwei#$!#@$kadhf#R9ofa#$dsf89ewq#$sdfihf3#R;sdfEWQ#RFDSFEAqliru9dss\n";
   char c;
	printf("在屏幕上打出这段话,随时按`加enter结束(随时可以按回车,不算错字)\n\n%s\n",Right.c_str());
    char ch;
    int n=0,right=0;
    time_t t1,t2;
    time(&t1);
    while(1)
      { 
      ch=_getch();
      cout<<ch;
          if (ch==Right[n])
            right++;
        if (ch=='`')
          break;
          n++;
      } 
    time(&t2);
    printf("\n总的输入字符数;%d",n);
    printf("\n对的字符数:%d",right);
    printf("\n总时长:%d秒",t2-t1); 
    printf("\n平均录入速度;%.2f/s",1.0*right/(t2-t1));
    printf("\n平均每分钟速度:%.2f/s",1.0*right/(t2-t1)*60);
    int S=1;
    printf("\n段位:");
    int s=1.0*right/(t2-t1)*60;
    if (s>=0&&s<50)
      printf("LV.1初学者");
    if (s>=50&&s<100)
      printf("LV.2有点水平");
    if (s>=100&&s<150)
      printf("LV.3超越正常人");
    if (s>=150&&s<220)
      printf("LV.4编程队员的水平");
    if (s>=220&&s<300)
      printf("LV.5程序猿");
    if (s>=300&&s<400)
      printf("LV.6速度不是盖的");
    if (s>=400&&s<480)
      printf("LV.7打字能手");
    if (s>=480&&s<550)
      printf("LV.8超级程序员");
    if (s>=550&&s<650)
      printf("LV.9电脑大师");
    if (s>=650&&s<850)
      printf("LV.10计算机大佬");
    if (s>=850)
	  printf("LV.11世界冠军"); 
    return s;
}
int const ROW = 4;
int const COL = 4;
int gamemap[ROW][COL] = {0};
 
//上下左右
int const UP = 1;
int const DOWN = 2;
int const LEFT = 3;
int const RIGHT = 4;
 
//游戏所处的状态
int const GAME_OVER = 1;
int const GAME_WIN = 2;
int const GAME_CONTINUE = 3;
 
enum GameNum
{
	Game_2 = 2,
	Game_4 = 4,
	Game_8 = 8,
	Game_16 = 16,
	Game_32 = 32,
	Game_64 = 64,
	Game_128 = 128,
	Game_256 = 256,
	Game_512 = 512,
	Game_1024 = 1024,
	Game_2048 = 2048,
};
 
//打印所得的数组
void Print()
{
	system("cls");
	cout << "*****************  2048 小 游 戏  ******************" << endl;
	cout << "*****************  GAME 2048  ******************" << endl << endl;
	for (int i = 0; i < ROW; ++i)
	{
		cout << "---------------------------------"<< endl;
		for (int j = 0; j < COL; ++j)
		{
			if (gamemap[i][j] == 0)
			{
				cout <<"|   \t";
			}
			else 
			{
				cout <<"|   " << gamemap[i][j] << "\t";
			}
		}
		cout << "|" << endl;
	}
	cout << "---------------------------------"<< endl;
}
 
 
bool CreateNumber()
{
	int x = -1;
	int y = -1;
	int times = 0;
	int maxTimes = ROW * COL;
	//三分之二的概率生成2,三分之一的概率生成4
	int whitch = rand() % 3;
	do 
	{
		x = rand() % ROW;
		y = rand() % COL;
		++times;
	} while (gamemap[x][y] != 0 && times <= maxTimes);
 
	//说明格子已经满了
	if(times >= maxTimes)
	{
		return false;
	}
	else
	{
		GameNum num;
		if(whitch == 0)
		{
			num = Game_4;
		}
		else if(whitch)
		{
			num = Game_2;
		}
		gamemap[x][y] = num;
	}
 
	return true;
}
 
void Process(int direction)
{
	switch (direction)
	{
	case UP:
		//最上面一行不动
		for(int row = 1; row < ROW; ++row)
		{
			for(int crow = row; crow >= 1; --crow)
			{
				for(int col = 0; col < COL; ++col)
				{
					//上一个格子为空
					if(gamemap[crow-1][col] == 0)
					{
						gamemap[crow-1][col] = gamemap[crow][col];
						gamemap[crow][col] = 0;
					}
					else 
					{
						//合并
						if(gamemap[crow-1][col] == gamemap[crow][col])
						{
							gamemap[crow - 1][col] *= 2;
							gamemap[crow][col] = 0;
						}
 
					}
				}
			}
		}
		break;
	case DOWN:
		//最下面一行不动
		for(int row = ROW - 2; row >= 0; --row)
		{
			for(int crow = row; crow < ROW - 1; ++crow)
			{
				for(int col = 0; col < COL; ++col)
				{
					//上一个格子为空
					if(gamemap[crow + 1][col] == 0)
					{
						gamemap[crow + 1][col] = gamemap[crow][col];
						gamemap[crow][col] = 0;
					}
					else 
					{
						//合并
						if(gamemap[crow + 1][col] == gamemap[crow][col])
						{
							gamemap[crow + 1][col] *= 2;
							gamemap[crow][col] = 0;
						}
 
					}
				}
			}
		}
		break;
	case LEFT:
		//最左边一列不动
		for(int  col = 1; col < COL; ++col)
		{
			for(int ccol = col; ccol >= 1; --ccol)
			{
				for(int row = 0; row < ROW; ++row)
				{
					//上一个格子为空
					if(gamemap[row][ccol-1] == 0)
					{
						gamemap[row][ccol - 1] = gamemap[row][ccol];
						gamemap[row][ccol] = 0;
					}
					else 
					{
						//合并
						if(gamemap[row][ccol - 1] == gamemap[row][ccol])
						{
							gamemap[row][ccol - 1] *= 2;
							gamemap[row][ccol] = 0;
						}
 
					}
				}
			}
		}
		break;
	case RIGHT:
		//最右边一列不动
		for(int  col = COL - 2; col >= 0; --col)
		{
			for(int ccol = col; ccol <= COL - 2; ++ccol)
			{
				for(int row = 0; row < ROW; ++row)
				{
					//上一个格子为空
					if(gamemap[row][ccol + 1] == 0)
					{
						gamemap[row][ccol + 1] = gamemap[row][ccol];
						gamemap[row][ccol] = 0;
					}
					else 
					{
						//合并
						if(gamemap[row][ccol + 1] == gamemap[row][ccol])
						{
							gamemap[row][ccol + 1] *= 2;
							gamemap[row][ccol] = 0;
						}
 
					}
				}
			}
		}
		break;
	}
 
}
 
//处理输入输出,返回上下左右
int Input()
{
	//读取上下左右四个方向键
	int upArrow = 0;
	int downArrow = 0;
	int leftArrow = 0;
	int rightArrow = 0;
	int direction = 0;
	while (true)
	{
		upArrow = GetAsyncKeyState(VK_UP);
		downArrow = GetAsyncKeyState(VK_DOWN);
		leftArrow = GetAsyncKeyState(VK_LEFT);
		rightArrow = GetAsyncKeyState(VK_RIGHT);
 
		if(upArrow)
		{
			direction = UP;
			break;
		}
		else if(downArrow)
		{
			direction = DOWN;
			break;
		}
		else if(leftArrow)
		{
			direction = LEFT;
			break;
		}
		else if(rightArrow)
		{
			direction = RIGHT;
			break;
		} 
 
	}
 
	return direction;
}
 
//判断游戏状态
int Judge()
{
	//赢得游戏
	for(int i = 0; i < ROW; ++i)
	{
		for(int j = 0; j < COL; ++j)
		{
			if(gamemap[i][j] == 2048)
			{
				return GAME_WIN;
				break;
			}
		}
	}
 
	//横向检查
	for(int i = 0 ; i < ROW; ++i)
	{
		for(int j = 0; j < COL - 1; ++j)
		{
			if(!gamemap[i][j] || (gamemap[i][j] == gamemap[i][j+1]))
			{
				return GAME_CONTINUE;
			}
		}
	}
	//纵向检查
	for(int j = 0; j< COL; ++j)
	{
		for(int i = 0; i < ROW -1; ++i)
		{
			if(!gamemap[i][j] || (gamemap[i][j] == gamemap[i+1][j]))
			{
				return GAME_CONTINUE;
				break;
			}
		}
	}
 
	//不符合上述两种状况,游戏结束
	return GAME_OVER;
}
 
bool game2048()
{
	CreateNumber();
	CreateNumber();
	//数组初始化
	for(int i=0;i<4;i++)
	  for(int j=0;j<4;j++)
	    gamemap[i][j]=0; 
	Print();
	int direction = 0;
	int gameState = -1;
	while(true)
	{
		direction = Input();
		gameState = Judge();
		if(direction && gameState == GAME_CONTINUE)
		{
			Process(direction);
			CreateNumber();
			Print();
		}
		else if(gameState == GAME_WIN)
		{
			Print();
			cout << "You Win!" << endl;
			hdcj(2);
			return 1;
		}
		else if(gameState == GAME_OVER)
		{
			Print();
			cout <<"You lose!" << endl;
			return 0;
		}
	}
}
void carnie()
{
	cls();
	while(1)
	  {
	  	cout<<"欢迎来到游乐场~按下序号即可玩相应的游戏~\n";
	  	const string where[]=
	  	{"贪吃蛇","石头剪刀布","扫雷","打字游戏","2048","离开","有奖问答"};
	  	int i,j,k,n,m;
	  	char l;
	  	for(i=0;i<1000;i++)
	  	  if (kbhit())
	  	    l=getch();//垃圾收集器 
	  	for(i=0;i<=6;i++)
	  	  printf("%d.%s\n",i,where[i].c_str());
	  	if (things[188]==1)
	      l=choose(4)+'0';
	    else
	  	    l=_getch();
	  	switch(l)
	  	  {
	  	  	case '0':{
	  	  		use(39);
	  	  		happened+=(name+"在游乐场畅玩贪吃蛇/");
	  	  		tepan();
	  	  		things[8]-=5;
	  	  	cls();
	  	  	cout<<"你要押多少钱?(注:9分以下血本无归,10分获得50%押钱,11~13获得70%押钱,14获得90%,15获得100%,以后每分增加5%\n";
	  	  	cin>>k;
	  	  	if (things[7]<k)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值