资讯详情

一个控制台游戏

  1. #include <iostream> #include <string> #include <ctime> #include <windows.h> #include <cstdlib> #include <conio.h> using namespace std; #include<windows.h>  #define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) #define max 101 #define back 489 #define f1 367 #define f2 364 #define f3 244 #define xue 100 #define rbp 80 #define sxue 20 #define bxue 500 #define ss 200 #include<ERICTOOL.h> #define co(NONAME) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),NONAME) int l1=xue,l2=xue; char ma[max][max]; int i11,j11,i2,j2,w1=0,w2=0,ww=0,row1=0,row2=0,yjsd=1,dshn=1,cshn=1,wudi=1,zjzr=1,sszw=1; string imt[10000001]; int imtu[10000001]; int ki=0; int c1=1,c2=1; int Bl=bxue,Bi,Bj,Br=1,Bs=1,wB=0,ti;  struct pd {  int s;  int io,jo; }k[10000001]; struct wq {  int lo;  int io,jo; }k1[10000001]; int kw=0; int kn=0; int stop() {  while(1)  {   if(_kbhit())    if(getch()==' ')break;  } } int out() {  int u1=0,u2=0;  if(i11>=max)i11=max-1,u1=1;  if(i2>=max)i2=max-1,u2=1;  if(j11>=max)j11=max-1,u1=1;  if(j2>=max)j2=max-1,u2=1;  if(i11<=0)i11=1,u1=1;  if(i2<=0)i2=1,u2=1;  if(j11<=0)j11=1,u1=1;  if(j2<=0)j2=1,u2=1;  if(ma[i11][j11]!=' '&&ma[i11][j11]!=' '&&ma[i11][j11]!='!')  {   if(c1==1)i11  ;   if(c1==2)j11  ;   if(c1==3)i11--;   if(c1==4)j11--;   u1=1;   }  if(ma[i2][j2]!=' '&&ma[i2][j2]!='?')  {   if(c2==1)i2  ;   if(c2==2)j2  ;   if(c2==3)i2--;   if(c2==4)j2--;   u2=1;  }     ma[i11][j11]='!';  ma[i2][j2]='?';  if(KEY_DOWN('Q')&&!row1)  {         getch();   if(c1==1)ma[i11-1][j11]=' ' ;   if(c1==2)ma[i11][j11-1]=' ' ;   if(c1==3)ma[i11 1][j11]=' ' ;   if(c1==4)ma[i11][j11 1]=' ' ;  }  if(KEY_DOWN('U')&&!row2)  {          getch();   if(c2==1)ma[i2-1][j2]=' ' ;   if(c2==2)ma[i2][j2-1]=' ' ;   if(c2==3)ma[i2 1][j2]=' ' ;   if(c2==4)ma[i2][j2 1]=' ' ;  }  if(ma[i11][j11]==' ')l1-=10;  if(ma[i2][j2]==' ')l2-=10;   if(l1<0&&!row1)   imt[  ki]="Player被拳头打死!row1)   imt[  ki]="Player被拳头打死!",imtu[ki]=clock()/1000,row1=rbp,w2  ,W_minopen("3.sound");   if(l2<0&&!row2)   imt[  ki]="Player被拳头打死!",imtu[ki]=clock()/1000,row2=rbp,w1  ,W_minopen("3.sound");  if(u1||u2)W_minopen("4.sound");  if(u1)  {   l1-=2;   if(l1<=0&&!row1)   imt[  ki]="Player掉出这个世界!",imtu[ki]=clock()/1000,row1=rbp,w2  ;  }  if(u2)  {   l2-=2;   if(l2<=0&&!row2)   imt[  ki]="Player掉出这个世界!",imtu[ki]=clock()/1000,row2=rbp,w1  ;  }  int i,j;  W_cls;  co(back);  cout<<"█████████████████████                     ██████████████████████"<<endl;  for(i=-4;i<=4;i  )  {   cout<<"██";   co(f1);   for(j=j11-4;j<=j11 4;j  )    if(i i11<=0||i i11>=max||j<=0||j>=max)co(f2),cout<<"▓▓",co(f1);    else cout<<ma[i i11][j]<<ma[i i11][j];   co(back);    cout<<"█                     █ ";   co(f1);   for(j=j2-4;j<=j2 4;j  )    if(i i2<=0||i i2>=max||j<=0||j>=max)co(f2),cout<<"▓▓",co(f1);    else cout<<ma[i i2][j]<<ma[i i2][j];   co(back);   cout<<"██";   cout<<endl;  }  cout<<"█████████████████████                     ██████████████████████";  co(f3);  if(row1)  printf("\n%d秒后PLAYER1复活         ",row1/10);   else  printf("\n1:(=,=)    m◆",j11,i11,l1);  if(row2)  printf("   \t\t  %d秒后PLAYER2复活\n",row2/10);  else  printf("   \t\t  2:(=,=)   m◆\n",j2,i2,l2);  if(Br)   printf("\n%d秒后BOSS复活         ",Br/10);  else  {   printf("\nBOSS:");   for(i=1;i<=Bl/50;i  )cout<<"◆";   for(i=Bl/50;i<=10;i  )cout<<"  ";   printf(" (=,=)",Bj,Bi);  }  co(704);   printf("\n                                                                ");  co(240); } int wow() {  int j;     for(j=1;j<=kn;j  )     {      if(k[j].s==0)continue;         if(k[j].io>0&&k[j].io<max&&k[j].jo>0&&k[j].jo<max)         {          ma[k[j].io][k[j].jo]=' ';          switch(k[j].s)          {           case 1:k[j].io--;break;           case 2:k[j].jo--;break;           case 3:k[j].io  ;break;           case 4:k[j].jo  ;break;    }    if(k[j].io==i11&&k[j].jo==j11)    {     k[j].s=0;     l1-=10;     W_minopen("2.sound");     }    else    if(k[j].io==i2&&k[j].jo==j2)    {     k[j].s=0;     l2-=10;     W_minopen("2.sound");     }          else          if(ma[k[j].io][k[j].jo]==' ')ma[k[j].io][k[j].jo]=' ',k[j].s=0;    else    if(k[j].io==Bi&&k[j].jo==Bj)    {     k[j].s=0;     Bl-=10;    }          else    ma[k[j].io][k[j].jo]='.';    if(l1<0&&!row1)    imt[  ki]="Player被子弹击中!row1)    imt[  ki]="Player被子弹击中!",imtu[ki]=clock()/1000,row1=rbp,w2  ;    if(l2<0&&!row2)    imt[  ki]="Player被子弹击中!",imtu[ki]=clock()/1000,row2=rbp,w1  ;    if(Bl<0&&!Br)    imt[  ki]="BOSS死在枪林弹雨中!",imtu[ki]=clock()/1000,Br=ss,wB  ;     }   else   k[].s=0;
    	}
    }
    int wei()
    {
    	int ku=rand()%50;
    	if(ku==0)
    	{
    		k1[++kw].io=rand()%(max-1);
    		k1[kw].jo=rand()%(max-1);
    		k1[kw].lo=sxue;
    		ma[k1[kw].io][k1[kw].jo]='@';
    		imt[++ki]="刷出一只僵尸!!!",imtu[ki]=clock()/1000;
    	}
    	int i;
    	for(i=1;i<=kw;i++)
    	{
    		if(k1[i].lo<=0)continue;
    		if(ma[k1[i].io][k1[i].jo]=='.'||ma[k1[i].io][k1[i].jo]==' ')
    		{
    			k1[i].lo-=10;ma[k1[i].io][k1[i].jo]='@';
    			if(k1[i].lo<=0)imt[++ki]="杀死一只僵尸。",imtu[ki]=clock()/1000;
    			ww++;
    		}
    		if(ma[k1[i].io][k1[i].jo]=='+')
    		{
    			k1[i].lo-=10;ma[k1[i].io][k1[i].jo]='@';
    			if(k1[i].lo<=0)imt[++ki]="僵尸被压住了。",imtu[ki]=clock()/1000;
    			ww++;
    		}
    		int dax1=i11-k1[i].io,day1=j11-k1[i].jo,dax2=i2-k1[i].io,day2=i2-k1[i].jo;
    		int u=0;
    		if(abs(dax1)+abs(day1)<=1&&!row1)l1-=2,u=1;
    		if(abs(dax2)+abs(day2)<=1&&!row2)l2-=2,u=1;
    		if(u)W_minopen("4.sound");
    		if(l1<0&&!row1)
    		imt[++ki]="Player1被僵尸杀死了!",imtu[ki]=clock()/1000,row1=rbp,w2++;
    		if(l2<0&&!row2)
    		imt[++ki]="Player2被僵尸杀死了!",imtu[ki]=clock()/1000,row2=rbp,w1++;
    		if(k1[i].lo<=0)continue;
    		ma[k1[i].io][k1[i].jo]=' ';
    		if(abs(dax1)+abs(day1)<=abs(dax2)+abs(day2))
    		{
    			if(abs(dax1)<=9&&abs(day1)<=9)
    			{
    				if(dax1<0&&ma[k1[i].io-1][k1[i].jo]==' ')k1[i].io--;
    				else
    					if(ma[k1[i].io+1][k1[i].jo]==' '&&dax1>0)k1[i].io++;
    				else 
    				if(day1<0&&ma[k1[i].io][k1[i].jo-1]==' ')k1[i].jo--;
    				else
    					if(ma[k1[i].io][k1[i].jo+1]==' '&&day1>0)k1[i].jo++;
    			}
    		}
    		else
    		{
    			if(abs(dax2)<=9&&abs(day2)<=9)
    			{
    				if(dax2<0&&ma[k1[i].io-1][k1[i].jo]==' ')k1[i].io--;
    				else
    					if(ma[k1[i].io+1][k1[i].jo]==' '&&dax2>0)k1[i].io++;
    				else
    				if(day2<0&&ma[k1[i].io][k1[i].jo-1]==' ')k1[i].jo--;
    				else
    					if(ma[k1[i].io][k1[i].jo+1]==' '&&day2>0)k1[i].jo++;
    			}
    		}
    		ma[k1[i].io][k1[i].jo]='@';
    	} 
    }
    int sf=1;
    int BOSS()
    {
    	if(Br)return 0;
    	if(sf==-1)
    	{
    		sf=1;
    		return 0;
    	}
    	sf=-1;
    	if(ma[Bi][Bj]==' ')Bl-=10;
    	int dax1=i11-Bi,day1=j11-Bj,dax2=i2-Bi,day2=i2-Bj;
    	int u=0,u1=1;
    	ma[Bi][Bj]=' ';
    		if(abs(dax1)+abs(day1)<=abs(dax2)+abs(day2))
    		{
    			if(abs(dax1)<=9&&abs(day1)<=9)
    			{
    				u1=0;
    				if(dax1<0&&ma[Bi-1][Bj]==' ')Bi--;
    				else
    				if(ma[Bi+1][Bj]!='+'&&dax1>0)Bi++;
    				if(day1<0&&ma[Bi][Bj-1]==' ')Bj;
    				else
    				if(ma[Bi][Bj+1]==' '&&day1>0)Bj;
    			}
    		}
    		else
    		{
    			if(abs(dax2)<=9&&abs(day2)<=9)
    			{
    				u1=0;
    				if(dax2<0&&ma[Bi-1][Bj]==' ')Bi--;
    				else
    				if(ma[Bi+1][Bj]==' '&&dax2>0)Bi++;
    				if(day2<0&&ma[Bi][Bj-1]==' ')Bj--;
    				else
    				if(ma[Bi][Bj]==' '&&day2>0)Bj++;
    			}
    		}
    	if(abs(dax1)+abs(day1)<=3&&!row1)l1-=20,u=1;
    	if(abs(dax2)+abs(day2)<=3&&!row2)l2-=20,u=1;
    	if(u)W_minopen("4.sound");
    	if(i11==Bi&&abs(day1)<=20&&!row1)
    	{
    		u1=0;
    		if(i11<Bi)
    		{
            	k[++kn].io=Bi,k[kn].jo=Bj;
            	k[kn].s=2;
    		}
    		if(i11>Bi) 
    		{
            	k[++kn].io=Bi,k[kn].jo=Bj;
            	k[kn].s=4;
    		}
    	}
    	if(i2==Bi&&abs(day2)<=20&&!row2)
    	{
    		u1=0;
    		if(i2<Bi)
    		{
            	k[++kn].io=Bi,k[kn].jo=Bj;
            	k[kn].s=2;
    		}
    		if(i2>Bi)
    		{
            	k[++kn].io=Bi,k[kn].jo=Bj;
            	k[kn].s=4;
    		}
    	}
    	if(j11==Bj&&abs(dax1)<=20&&!row1)
    	{
    		u1=0;
    		if(j11<Bj)
    		{
            	k[++kn].io=Bi,k[kn].jo=Bj;
            	k[kn].s=1;
    		}
    		if(j11>Bj)
    		{
            	k[++kn].io=Bi,k[kn].jo=Bj;
            	k[kn].s=3;
    		}
    	}
    	if(j2==Bj&&abs(dax2)<=20&&!row2)
    	{
    		u1=0;
    		if(j2<Bj)
    		{
            	k[++kn].io=Bi,k[kn].jo=Bj;
            	k[kn].s=1;
    		}
    		if(j2>Bj)
    		{
            	k[++kn].io=Bi,k[kn].jo=Bj;
            	k[kn].s=3;
    		}
    	}
    	if(u1)
    	{
    		int s=rand()%4+1;
    		switch(s)
    		{
    			case 1:if(ma[Bi-1][Bj]==' ')Bi--;break;
    			case 2:if(ma[Bi][Bj-1]==' ')Bj--;break;
    			case 3:if(ma[Bi+1][Bj]==' ')Bi++;break;
    			case 4:if(ma[Bi][Bj+1]==' ')Bj++;break;
    		}
    	}
    	if(l1<0&&!row1)
    		imt[++ki]="Player1被BOSS击杀了!",imtu[ki]=clock()/1000,row1=rbp,w2++;
    	if(l2<0&&!row2)
    		imt[++ki]="Player2被BOSS击杀了!",imtu[ki]=clock()/1000,row2=rbp,w1++;
    	ma[Bi][Bj]='|';
    }
    int impto()
    {
    	int i;
    	for(i=(ki-5>1?ki-5:1);i<=ki;i++)
    	{
    		printf("\n%4ds:",imtu[i]);cout<<imt[i]<<"                       ";
    	}
    }
    #define	WRONG_ {printf("指令完成失败~");return 1;}
    int kill(char sb,int i)
    {
    	switch(sb)
    	{
    		case 'w':if(i>kw)WRONG_
    			else
    				k1[i].lo=0,imt[++ki]="杀死一只僵尸~",imtu[ki]=clock()/1000,ww++;
    			break;
    		case 'p':if(i==1)imt[++ki]="Player1消失了~",imtu[ki]=clock()/1000,row1=rbp,w2++;
    			else if(i==2)imt[++ki]="Player2消失了~",imtu[ki]=clock()/1000,row2=rbp,w1++;
    			else WRONG_ 
    			break;
    		case 'b':Bl=-1,imt[++ki]="BOSS被推出了游戏~",imtu[ki]=clock()/1000,Br=ss,wB++;break; 
    		
    	}
    }
    int move(char sb,int u,int i,int j)
    {
    	switch(sb)
    	{
    		case 'w':if(u>kw||k1[u].lo<=0)WRONG_
    			else
    				k1[u].io=j,k1[u].jo=i,imt[++ki]="一只僵尸逃跑了~",imtu[ki]=clock()/1000;
    			break;
    			case 'p':if(u==1)i11=j,j11=i,imt[++ki]="Player1瞬移了~",imtu[ki]=clock()/1000;
    			else if(u==2)i2=j,j2=i,imt[++ki]="Player2瞬移了~",imtu[ki]=clock()/1000;
    			else WRONG_ 
    			break; 
    		case 'b':Bi=j,Bj=i,imt[++ki]="BOSS飞走了~",imtu[ki]=clock()/1000;break; 
    
    	}
    }
    int rock(int i,int j)
    {
    	if(i>=max||i<=0||j>=max||j<=0)WRONG_
    	int u=0;
    	if(i==j11&&j==i11&&!row1)l1-=5,u=1;
    	else
    	if(i==j2&&j==i2&&!row2)l2-=5,u=1;
    	else
    	if(i==Bj&&j==Bi&&!Br)Bl-=5,u=1;
    	else
    	ma[j][i]='+';
    	if(l1<=0&&!row1)
    		imt[++ki]="Player1被石头砸死了!",imtu[ki]=clock()/1000,row1=rbp,w2++;
    	if(l2<=0&&!row2)
    		imt[++ki]="Player2被石头砸死了!",imtu[ki]=clock()/1000,row2=rbp,w1++;
    	if(Bl<=0&&!Br)
    		imt[++ki]="BOSS深埋地底!",imtu[ki]=clock()/1000,Br=ss,wB++;
    	if(u)W_minopen("4.sound");
    }
    int clean(int i,int j)
    {
    	if(i>=max||i<=0||j>=max||j<=0)WRONG_
    	ma[i][j]=' ';
    }
    int around(char sb,int u)
    {
    	int ii,jj;
    	switch(sb)
    	{
    		case 'w':if(u>kw||k1[u].lo<=0)WRONG_
    			else
    				ii=k1[u].io,jj=k1[u].jo,imt[++ki]="僵尸迷路了~",imtu[ki]=clock()/1000;
    			break;
    		case 'p':if(u==1)ii=i11,jj=j11,imt[++ki]="Player1被包围了~",imtu[ki]=clock()/1000;
    			else if(u==2)ii=i2,jj=j2,imt[++ki]="Player2被包围了~",imtu[ki]=clock()/1000;
    			else WRONG_ 
    			break; 
    		case 'b':ii=Bi,jj=Bj,imt[++ki]="BOSS被困住了~",imtu[ki]=clock()/1000;break;	
    		
    	}
    	if(ii+1<=max)ma[ii+1][jj]='+';
    	if(ii-1>0)ma[ii-1][jj]='+';
    	if(jj+1<=max)ma[ii][jj+1]='+';
    	if(jj-1>0)ma[ii][jj-1]='+';
    }
    int full(char sb,int u,int i)
    {
    	int cc1,ww,cc2,bb;
    	if(i>0)
    	{
    		cc1=i;
    		cc2=i;
    		ww=i;
    		bb=i;
    	}
    	else
    	if(!i)
    	{
    		cc1=cc2=xue;
    		ww=sxue;
    		bb=bxue;
    	}
    	else
    	{
    		cc1=l1-i;
    		cc2=l2-i;
    		ww=k1[u].lo-i;
    		bb=Bl-i;
    	}
    	switch(sb)
    	{
    		case 'w':if(u>kw||k1[u].lo<=0)WRONG_
    			else
    				k1[u].lo=ww,imt[++ki]="僵尸出现了一些神奇的变化~",imtu[ki]=clock()/1000;
    			break;
    		case 'p':if(u==1)l1=cc1,imt[++ki]="Player1喝下了药水~",imtu[ki]=clock()/1000;
    			else if(u==2)l2=cc2,imt[++ki]="Player2喝下了药水~",imtu[ki]=clock()/1000;
    			else WRONG_ 
    			break;
    		case 'b':
    			Bl=ww,imt[++ki]="BOSS变异了~",imtu[ki]=clock()/1000;break;
    	}
    }
    int again(char sb,int i)
    {
    	switch(sb)
    	{
    		case 'w':if(i>kw||i<1)WRONG_
    			else
    				k1[i].lo=sxue,imt[++ki]="僵尸卷土重来~",imtu[ki]=clock()/1000,k1[i].io=rand()%(max-1),k1[i].jo=rand()%(max-1),k1[i].lo=sxue,ma[k1[i].io][k1[i].jo]='@';
    			break;
    		case 'p':if(i==1)row1=0,imt[++ki]="Player1恢复了~",imtu[ki]=clock()/1000,i11=rand()%(max-1),j11=rand()%(max-1),l1=xue,ma[i11][j11]='!';
    			else if(i==2)row2=0,imt[++ki]="Player2恢复了~",imtu[ki]=clock()/1000,i2=rand()%(max-1),j2=rand()%(max-1),l2=xue,ma[i2][j2]='?';
    			else WRONG_ 
    			break; 
    		case 'b':Br=0,imt[++ki]="BOSS被唤醒了~",imtu[ki]=clock()/1000,Bi=rand()%(max-1),Bj=rand()%(max-1),Bl=bxue,ma[Bi][Bj]='|';break;
    	}
    }
    int find(char sb,int i)
    {
    	if(sb=='w')
    	{
    		if(i>kw||i<1)WRONG_
    		printf("\n僵尸%d号 %6d◆ ",i,k1[i].lo);
    		if(k1[i].lo>0)printf("位于(%3d,%3d) 存活中-",k1[i].jo,k1[i].io);
    		else printf("已死亡");
    	}else 
    	if(sb=='p') 
    	{
    		if(i==1)
    		{
    			printf("PLAYER1 (%3d,%3d) 得分:%3d",j11,i11,w1);
    			if(row1)printf(" %d秒后复活",row1/1000);
    			else printf(" %6d◆",l1);
    		}
    		if(i==2)
    		{
    			printf("PLAYER2 (%3d,%3d) 得分:%3d",j2,i2,w2);
    			if(row2)printf(" %d秒后复活",row2/1000);
    			else printf(" %6d◆",l2);
    		}
    	}else 
    	if(sb=='b')
    	{
    			printf("BOSS (%3d,%3d)",Bj,Bi);
    			if(Br)printf(" %d秒后复活",Br/1000);
    			else printf(" %6d◆",Bl);
    	}else WRONG_
    }
    int row(char sb,int u,int i)
    {
    	int cc1,cc2,bb;
    	if(i>0)
    	{
    		cc1=i;
    		cc2=i;
    		bb=i;
    	}
    	else
    	if(!i)
    	{
    		cc1=cc2=rbp;
    		bb=ss;
    	}
    	else
    	{
    		cc1=row1-i;
    		cc2=row2-i;
    		bb=Bl-i;
    	}
    	switch(sb)
    	{
    		case 'p':if(u==1)row1=cc1,imt[++ki]="Player1被封印了~",imtu[ki]=clock()/1000;
    			else if(u==2)row1=cc2,imt[++ki]="Player2被封印了~",imtu[ki]=clock()/1000;
    			else WRONG_ 
    			break;
    		case 'b':
    			Bl=ww,imt[++ki]="BOSS变异了~",imtu[ki]=clock()/1000;break;
    	}
    }
    int forl()
    {
    	string cmdu,ml1="kill",ml2="move",ml3="rock",ml4="around",ml5="full",ml6="again",ml7="out",ml8="find",ml9="clean",ml10="row";
    	char ca1,ca2;
    	int in1,in2,in3,in4,i,j,in5,in6;
    	string st1,st2;
    	cin>>cmdu;
    	if(cmdu==ml1)
    	{
    		cin>>ca1>>in1>>in2;
    		if((ca1=='p')&&(in1>2||in2>2)||(ca1=='w')&&(in1>kw||in2>kw)||in1<1||in2<1)WRONG_ 
    		for(i=in1;i<=in2;i++)kill(ca1,i);
    	}else
    	if(cmdu==ml2)
    	{
    		cin>>ca1>>in1>>in2>>in3>>in4;
    		if((ca1=='p')&&(in1>2||in2>2)||(ca1=='w')&&(in1>kw||in2>kw)||in1<1||in2<1)WRONG_ 
    		for(i=in1;i<=in2;i++)move(ca1,i,in3,in4);
    	}else
    	if(cmdu==ml3)
    	{
    		cin>>in1>>in2>>in3>>in4>>in5;
    		if(in1>=max||in1<=0||in2>=max||in2<=0||in3>=max||in3<=0||in4>=max||in4<=0||in5<=0)WRONG_
    		if(in1>in3)
    		{
    			in6=in1;
    			in1=in3;
    			in3=in6;
    		}
    		if(in2>in4)
    		{
    			in6=in2;
    			in2=in4;
    			in4=in6;
    		}
    		for(i=in1;i<=in3;i++)
    		for(j=in2;j<=in4;j++)
    		for(in6=1;in6<=in5;in6++)
    		rock(i,j);
    		imt[++ki]="天降巨石~",imtu[ki]=clock()/1000;
    	}else
    	if(cmdu==ml4)
    	{
    		cin>>ca1>>in1>>in2;
    		if((ca1=='p')&&(in1>2||in2>2)||(ca1=='w')&&(in1>kw||in2>kw)||in1<1||in2<1)WRONG_ 
    		for(i=in1;i<=in2;i++)around(ca1,i);
    	}else
    	if(cmdu==ml5)
    	{
    		cin>>ca1>>in1>>in2>>in3;
    		if((ca1=='p')&&(in2>2||in3>2)||(ca1=='w')&&(in2>kw||in3>kw)||in2<1||in3<1)WRONG_ 
    		for(i=in2;i<=in3;i++)full(ca1,i,in1);
    	}else
    	if(cmdu==ml6)
    	{
    		cin>>ca1>>in1>>in2;
    		if((ca1=='p')&&(in1>2||in2>2)||(ca1=='w')&&(in1>kw||in2>kw)||in1<1||in2<1)WRONG_ 
    		for(i=in1;i<=in2;i++)again(ca1,i);
    	}else
    	if(cmdu==ml7)
    	{
    		cin>>st1>>in1;
    		for(i=1;i<=in1;i++)
    		imt[++ki]=st1,imtu[ki]=clock()/1000;
    	}else
    	if(cmdu==ml8)
    	{
    		cin>>ca1>>in1>>in2;
    		if((ca1=='p')&&(in1>2||in2>2)||(ca1=='w')&&(in1>kw||in2>kw)||in1<1||in2<1)WRONG_ 
    			for(i=in1;i<=in2;i++)find(ca1,i);
    		stop();
    	}else
    	if(cmdu==ml9)
    	{
    		cin>>in1>>in2>>in3>>in4;
    		if(in1>=max||in1<=0||in2>=max||in2<=0||in3>=max||in3<=0||in4>=max||in4<=0)WRONG_
    		if(in1>in3)
    		{
    			in6=in1;
    			in1=in3;
    			in3=in6;
    		}
    		if(in2>in4)
    		{
    			in6=in2;
    			in2=in4;
    			in4=in6;
    		}
    		for(i=in1;i<=in3;i++)
    		for(j=in2;j<=in4;j++)
    		clean(j,i);
    		imt[++ki]="某些东西消失了~",imtu[ki]=clock()/1000;
    	}else
    	if(cmdu==ml10)
    	{
    		cin>>ca1>>in1>>in2>>in3;
    		if((ca1=='p')&&(in2>2||in3>2)||(ca1=='w')&&(in2>kw||in3>kw)||in2<1||in3<1)WRONG_ 
    		for(i=in2;i<=in3;i++)row(ca1,i,in1);
    	}
    } 
    int cmd()
    {
    	printf("\n命令:"); 
    	string cmdu,ml1="kill",ml2="move",ml3="rock",ml4="around",ml5="full",ml6="again",ml7="out",ml8="for",ml9="find",ml10="clean",ml11="row",ml12="now",ml13="first";
    	char ca1,ca2;
    	int in1,in2,in3,in4;
    	string st1,st2;
    	cin>>cmdu;
    	if(cmdu=="exit")return 1;
    	if(cmdu==ml1)
    	{
    		cin>>ca1>>in1;
    		kill(ca1,in1);
    	}else
    	if(cmdu==ml2)
    	{
    		cin>>ca1>>in1>>in2>>in3;
    		move(ca1,in1,in2,in3);
    	}else
    	if(cmdu==ml3)
    	{
    		cin>>in1>>in2;
    		rock(in1,in2);
    		imt[++ki]="天降巨石~",imtu[ki]=clock()/1000;
    	}else
    	if(cmdu==ml4)
    	{
    		cin>>ca1>>in1;
    		around(ca1,in1);
    	}else
    	if(cmdu==ml5)
    	{
    		cin>>ca1>>in1>>in2;
    		full(ca1,in1,in2);
    	}else
    	if(cmdu==ml6)
    	{
    		cin>>ca1>>in1;
    		again(ca1,in1);
    	}else
    	if(cmdu==ml7)
    	{
    		cin>>st1;
    		imt[++ki]=st1,imtu[ki]=clock()/1000;
    	}else
    	if(cmdu==ml8)
    	{
    		forl();
    	}else
    	if(cmdu==ml9)
    	{
    		cin>>ca1;
    		if(ca1=='w')
    		{
    			cin>>in1;
    			if(in1>0)find(ca1,in1);
    			else printf("共生成僵尸%d只-",kw);
    		}
    		if(ca1=='p')
    		{
    			cin>>in1;
    			if(in1>0)find(ca1,in1);
    			else printf("共杀死僵尸%d只-",ww);
    		}
    		if(ca1=='b')
    		{
    			cin>>in1;
    			if(in1>0)find(ca1,in1);
    			else printf("共被击败%d次-",wB);
    		}
    	}else
    	if(cmdu==ml10)
    	{
    		cin>>in1>>in2;
    		clean(in2,in1);
    		imt[++ki]="某些东西消失了~",imtu[ki]=clock()/1000;
    	}else
    	if(cmdu==ml11)
    	{
    		cin>>ca1>>in1>>in2;
    		row(ca1,in1,in2);
    	}else
    	if(cmdu==ml12)
    	{
    		system("cls");
    		for(int i=1;i<=ki;i++)
    		{
    			printf("%4ds:",imtu[i]);cout<<imt[i]<<endl; 
    		}
    		stop();
    		system("cls");
    		printf("-命令中心-");
    	}
    	if(cmdu==ml13)
    	{
    		kn=kw=0;
    		imt[++ki]="一切恢复了原样~",imtu[ki]=clock()/1000;
    	}
    	return 0;
    }
    int cmd1()
    {
    	system("cls");
    	system("color F0");
    	system("title 命令");
    	printf("-命令中心-");
    	while(cmd()==0);
    	system("title PLAY"); 
    }
    int main()
    {
    	Bl=bxue; 
    	time_t tm = time(NULL);
    	srand((unsigned int)tm);
    	system("color E9");
    	system("title PLAY");
    	int i,j;
    	printf("\n\n\n\n\n\n\n\n\n\t\t\t  -塔炮游戏-"); 
    	stop();
    	for(i=1;i<=max-1;i++)
    		for(j=1;j<=max-1;j++)
    			if(rand()%10)
    				ma[i][j]=' ';
    			else
    				ma[i][j]='+';
    	i11=rand()%(max-1)+1; 
    	i2=rand()%(max-1)+1; 
    	j11=rand()%(max-1)+1; 
    	j2=rand()%(max-1)+1;
    	ma[i11][j11]='!';
    	ma[i2][j2]='?';
    	system("color F0");
    	out();
        while(!KEY_DOWN('\033'))
        {
    		ti=clock();
        	ma[i11][j11]=' ';
    		ma[i2][j2]=' ';
            if(KEY_DOWN('W')&&!row1)getch(),i11--,c1=1;
            if(KEY_DOWN('A')&&!row1)getch(),j11--,c1=2;
            if(KEY_DOWN('S')&&!row1)getch(),i11++,c1=3;
            if(KEY_DOWN('D')&&!row1)getch(),j11++,c1=4;
            if(KEY_DOWN('I')&&!row2)getch(),i2--,c2=1;
            if(KEY_DOWN('J')&&!row2)getch(),j2--,c2=2;
            if(KEY_DOWN('K')&&!row2)getch(),i2++,c2=3;
            if(KEY_DOWN('L')&&!row2)getch(),j2++,c2=4;
            if(KEY_DOWN('Z')&&!row1)
            {
            	getch();
            	k[++kn].io=i11,k[kn].jo=j11;
            	k[kn].s=c1;
            	W_minopen("1.sound");
    		}
    		
            if(KEY_DOWN('M')&&!row2)
            {
            	getch();
            	k[++kn].io=i2,k[kn].jo=j2;
            	k[kn].s=c2;
            	W_minopen("1.sound");
    		}
    		if(KEY_DOWN('X')&&!row1)
    		{
            	getch();
    			if(c1==1)ma[i11-1][j11]='+' ;
    			if(c1==2)ma[i11][j11-1]='+' ;
    			if(c1==3)ma[i11+1][j11]='+' ;
    			if(c1==4)ma[i11][j11+1]='+' ;
    		}
    		if(KEY_DOWN('N')&&!row2)
    		{
            	getch();
    			if(c2==1)ma[i2-1][j2]='+' ;
    			if(c2==2)ma[i2][j2-1]='+' ;
    			if(c2==3)ma[i2+1][j2]='+' ;
    			if(c2==4)ma[i2][j2+1]='+' ;
    		}
    		if(KEY_DOWN('T'))
    			getch(),cmd1();
    		wow();
    		wei();
    		BOSS(); 
    		out();
    		impto();
    		if(ww>=5&&dshn)imt[++ki]="弑尸大神*",dshn=0,imtu[ki]=clock()/1000;
    		if(ww>=10&&cshn)imt[++ki]="弑尸超神*",cshn=0,imtu[ki]=clock()/1000;
    		if(ww>=20&&wudi)imt[++ki]="天下无敌*",wudi=0,imtu[ki]=clock()/1000;
    		if(wB>=2&&zjzr)imt[++ki]="终结之人*",zjzr=0,imtu[ki]=clock()/1000;
    		if(wB>=5&&sszw)imt[++ki]="手速之王*",sszw=0,imtu[ki]=clock()/1000;
    		if(row1&&row2&&yjsd)imt[++ki]="一箭双雕*",yjsd=0,imtu[ki]=clock()/1000; 
    		if(row1>1)row1--;
    			else if(row1==1)l1=xue,row1=0,yjsd=1,imt[++ki]="PLAYER1再生~",imtu[ki]=clock()/1000,ma[i11][j11]='+',i11=rand()%(max-1)+1,j11=rand()%(max-1)+1,ma[i11][j11]='!';
    		if(row2>1)row2--;
    			else if(row2==1)l2=xue,row2=0,yjsd=1,imt[++ki]="PLAYER2再生~",imtu[ki]=clock()/1000,ma[i11][j11]='+',i2=rand()%(max-1)+1,j2=rand()%(max-1)+1,ma[i11][j11]='?';
    		if(Br>1)Br--;
    			else if(Br==1)Bl=bxue,Br=0,imt[++ki]="BOSS回来了~",imtu[ki]=clock()/1000,Bi=rand()%(max-1)+1,Bj=rand()%(max-1)+1,ma[Bi][Bj]='@';
            if(clock()-ti<=100)Sleep(100-clock()+ti);
        } 
        Sleep(100);
    	system("cls");
    	system("color F0");
    	printf("本局回顾:");
    	for(i=1;i<=ki;i++)
    	{
    		printf("\n%4ds:",imtu[i]);cout<<imt[i]; 
    	}
    	printf("\n\n\n\n\n\n得分为PLAYER1:%d\tPLAYER2:%d\t击杀僵尸%d只\t击杀BOSS %d次\n",w1,w2,ww,wB);
    	if(w1>w2)printf("MVP:PLAYER1");
    	else
    	if(w1<w2)printf("MVP:PLAYER2");
    	else printf("势均力敌");
    	stop();
        return 0;
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    //Erictool.h#ifndef ERICTOOL_H
    #define ERICTOOl_H
    #include <iostream>
    #include <conio.h>
    #include <string>
    #include <map>
    #include <math.h>
    #include <windows.h>
    #include <time.h>
    #include<math.h>
    using namespace std;
    #define W_color(NONAME)	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),NONAME)
    #define T_keydown(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
    void W_gotoxy(int x, int y) {
    	COORD pos = { x,y };
    	HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);// 获取标准输出设备句柄
    	SetConsoleCursorPosition(hOut, pos);//两个参数分别是指定哪个窗体,具体位置
    }
    #define W_cls W_gotoxy(0,0)
    void W_minopen(string a)
    {
    	char b[100];
    	for(int i=0;a[i]!='\0';i++)b[i]=a[i];
    	ShellExecuteA(NULL,"open",b,0,0,SW_HIDE);
    }
    string T_time()
    {
    	time_t t = time(0); 
    	char tmp[64]; 
    	strftime( tmp, sizeof(tmp), "%d %m %Y %X",localtime(&t) ); 
    	string s =tmp;
    	return s;
    }
    void W_background(string a)
    {
    	char b[100];
    	for(int i=0;a[i]!='\0';i++)b[i]=a[i];
    	SystemParametersInfoA(20,0,b,3);
    }
    void W_size(int size1,int size2) {
    	CONSOLE_FONT_INFOEX cfi;
    	cfi.cbSize = sizeof cfi;
    	cfi.nFont = 0;
    	cfi.dwFontSize.X = size2;
    	cfi.dwFontSize.Y = size1;  //设置字体大小
    	cfi.FontFamily = FF_DONTCARE;
    	cfi.FontWeight = FW_NORMAL; //字体粗细 FW_BOLD
    	SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), FALSE, &cfi);
    	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    	CONSOLE_FONT_INFO consoleCurrentFont;
    	GetCurrentConsoleFont(handle, FALSE, &consoleCurrentFont);
    }
    #define C_getw GetForegroundWindow()
    int W_getw(HWND hwnd,RECT *rect)
    {
    	GetWindowRect(hwnd,rect);	
    }
    #define C_x GetSystemMetrics(SM_CXSCREEN)
    #define C_y GetSystemMetrics(SM_CYSCREEN)
    int c_x=C_x,c_y=C_y;
    #define T_getk(NONAME) GetCursorPos(&NONAME)
    void T_setk(int a,int b)
    {
    	SetCursorPos(a,b);
    }
    #endif

标签: ry1s2j11r1压力变送器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台