c++双人战争小游戏

       一个小游戏。

效果:

 

代码:

#include<bits/stdc++.h>
#include<windows.h>
#define random(x) (rand()%x)
using namespace std;
int main() 
{
	srand((int)time(0));
	char b[20][20]={'-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-',
	               '-','.','.','.','|','.','.','.','.','.','.','.','.','|','.','.','.','.','.','-',
				   '-','.','|','.','|','.','.','.','.','.','.','.','|','.','.','.','.','.','.','-',
				   '-','.','|','.','|','.','.','.','.','|','.','|','.','.','.','.','.','.','.','-',
				   '-','.','|','.','|','.','.','.','.','.','|','.','.','.','.','.','.','.','.','-',
				   '-','|','|','.','|','.','.','.','.','.','.','|','.','|','|','|','|','.','.','-',
				   '-','.','.','.','|','.','.','.','.','.','.','.','.','|','.','.','|','.','.','-',
				   '-','.','.','.','|','.','.','.','|','.','.','.','.','|','.','.','|','|','.','-',
				   '-','.','.','|','.','|','.','.','|','.','.','.','.','|','.','.','|','.','.','-',
				   '-','.','.','.','.','|','.','.','|','|','|','|','.','|','.','.','|','.','.','-',
				   '-','.','.','.','.','|','.','.','|','.','.','.','.','|','.','.','|','.','.','-',
				   '-','|','|','.','.','|','.','.','|','.','.','.','.','.','.','.','.','.','.','-',
				   '-','.','|','.','.','|','.','.','|','.','.','.','.','.','.','.','.','|','|','-',
				   '-','.','|','.','.','.','.','.','.','.','.','.','.','.','.','.','.','|','.','-',
				   '-','.','|','|','.','.','|','.','.','.','.','.','|','.','.','|','.','|','.','-',
				   '-','.','.','.','.','|','.','.','.','.','.','.','|','.','.','|','.','|','.','-',
				   '-','.','.','.','|','|','|','|','|','|','.','.','|','|','|','|','.','|','.','-',
				   '-','.','.','|','.','.','.','|','.','.','.','|','.','.','.','.','.','|','.','-',
				   '-','.','|','.','.','.','.','.','.','.','|','.','.','.','.','.','.','.','.','-',
				   '-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-'};
    for(int i=0;i<20;i++)
    {
    	    for(int j=0;j<20;j++)
             cout<<b[i][j]<<" ";
             cout<<endl;
	}
    Sleep(500);
    system("cls");
    cout<<"是否进行游戏教程:"<<endl;
    cout<<"1.是"<<endl;
    cout<<"2.否"<<endl;
    int a;
    cin>>a;
    system("cls");
    if(a==1)
    {
    	cout<<"1.随机传送至是.的方格"<<endl;
    	cout<<"2.“|”是障碍,无法通过"<<endl;
		cout<<"3.“-”为边界"<<endl;
		cout<<"4.随机生成物资(可能会盖掉障碍 g为攻击+1,x为血量+1,s为速度+1)"<<endl;
		Sleep(5000);
		system("cls"); 
	}
	else;
	int g;
	g=random(2);
	int qw=4,er=1,ty=13,ui=18,op=1;
	int z=1;
	if(g==1)
	{
		b[4][1]='A';
		b[13][18]='B';
		op=1;
	 } 
	 else
	 {
	 	b[4][1]='B';
	 	b[13][18]='A';
	 	op=2;
	 }
	 int o=1;
	 int As=1,Bs=1;
	 int ag=1,bg=1,af=3,bf=3;
	 int ah,bh;
	 while(1)
	 {	ah=As;  
	    bh=Bs;
	    if(o==1)
	    {
           for(int ii=1;ii<=As;ii++)
           {	    	
	    	system("cls");
            for(int i=0;i<20;i++)
            {
    	    for(int j=0;j<20;j++)
             cout<<b[i][j]<<" ";
             cout<<endl;
	        }	
				
	    	cout<<"A玩家选择方向"<<endl;
	    	cout<<"速度:"<<As<<endl;
			cout<<"血量:"<<string(af,'*')<<endl;
           cout<<"攻击:"<<ag<<endl;
            cout<<"攻击距离:1(按g键攻击)"<<endl; 
            cout<<"还可以走:"<<ah<<"步"<<endl;
           	char f;
           	cin>>f;  
           	if(op==1)
           	{
      		if(f=='g')
           		{
           			if(b[qw-1][er]=='B' ||b[qw+1][er]=='B'||b[qw][er+1]=='B' || b[qw][er-1]=='B'|| b[qw-1][er-1]=='B'|| b[qw+1][er-1]=='B'|| b[qw-1][er+1]=='B'|| b[qw+1][er+1]=='B' )
           			{
           				system("cls");
           				cout<<"击中!"<<endl;
           				bf=bf-ag;
           				system("color 40");
						Sleep(1000);
           				system("cls");
           				system("color 07");
           				break;
					   }
					   else
					   {
           				system("cls");
           				cout<<"没中!"<<endl;
           				system("color c0");
						   Sleep(1000);
           				system("cls");
				    	system("color 07");					   	
					   }
				   }
           		if(f=='w')
           		{
           			if(b[qw-1][er]=='-' ||b[qw-1][er]=='|')
           			{
					   system("cls");
              			cout<<"无法过"<<endl;
           			Sleep(1000);
           			system("cls");        				
					   }
					else if(b[qw-1][er]=='x')
					{
						b[qw][er]='.';
						b[qw-1][er]='A';
						qw--;
						af=af+1;
					}
					else if(b[qw-1][er]=='s')
					{
						b[qw][er]='.';
						b[qw-1][er]='A';
						qw--;
						As=As+1;
				}
					else if(b[qw-1][er]=='g')
					{
						b[qw][er]='.';
						b[qw-1][er]='A';
						qw--;
						ag=ag+1;
					}
                    else if(b[qw-1][er]=='.')
                    {
                    	b[qw][er]='.';
                    	b[qw-1][er]='A';
                    	qw--;
					}
				   }
				   if(f=='s')
				   {
           			if(b[qw+1][er]=='-' ||b[qw+1][er]=='|')
           			{
					   system("cls");
              			cout<<"无法过"<<endl;
           			Sleep(1000);
           			system("cls");        				
					   }
					else if(b[qw+1][er]=='x')
					{
						b[qw][er]='.';
						b[qw+1][er]='A';
						qw++;
						af=af+1;
					}
					else if(b[qw+1][er]=='s')
					{
						b[qw][er]='.';
						b[qw+1][er]='A';
						qw++;
						As=As+1;
				}
					else if(b[qw+1][er]=='g')
					{
						b[qw][er]='.';
						b[qw+1][er]='A';
						qw++;
						ag=ag+1;
					}
                    else if(b[qw+1][er]=='.')
                    {
                    	b[qw][er]='.';
                    	b[qw+1][er]='A';
                    	qw++;			   	
				   }
				   
			   }
			   if(f=='a')
			   {
           			if(b[qw][er-1]=='-' ||b[qw][er-1]=='|')
           			{
					   system("cls");
              			cout<<"无法过"<<endl;
           			Sleep(1000);
           			system("cls");        				
					   }
					else if(b[qw][er-1]=='x')
					{
						b[qw][er]='.';
						b[qw][er-1]='A';
						er--;
						af=af+1;
					}
					else if(b[qw][er-1]=='s')
					{
						b[qw][er]='.';
						b[qw][er-1]='A';
						er--;
						As=As+1;
				}
					else if(b[qw][er-1]=='g')
					{
						b[qw][er]='.';
						b[qw][er-1]='A';
						er--;
						ag=ag+1;
					}
                    else if(b[qw][er-1]=='.')
                    {
                    	b[qw][er]='.';
                    	b[qw][er-1]='A';
                    	er--;			   	
				   }			   	
			   }
			   if(f=='d')
           	  {
           			if(b[qw][er+1]=='-' ||b[qw][er+1]=='|')
           			{
					   system("cls");
              			cout<<"无法过"<<endl;
           			Sleep(1000);
           			system("cls");        				
					   } 
					else if(b[qw][er+1]=='x')
					{
						b[qw][er]='.';
						b[qw][er+1]='A';
						er++;
						af=af+1;
					}
					else if(b[qw][er+1]=='s')
					{
						b[qw][er]='.';
						b[qw][er+1]='A';
						er++;
						As=As+1;
				}
					else if(b[qw][er+1]=='g')
					{
						b[qw][er]='.';
						b[qw][er+1]='A';
						er++;
						ag=ag+1;
					}
                    else if(b[qw][er+1]=='.')
                    {
                    	b[qw][er]='.';
                    	b[qw][er+1]='A';
                    	er++;			   	
				   }

		   }
		  
		   	
		   } 
		   else if(op==2)
		   {
        		if(f=='g')
           		{
           			if(b[ty-1][ui]=='B' ||b[ty+1][ui]=='B'||b[ty][ui+1]=='B' || b[ty][ui-1]=='B'|| b[ty-1][ui-1]=='B'|| b[ty+1][ui-1]=='B'|| b[ty-1][ui+1]=='B'|| b[ty+1][ui+1]=='B' )
           			{
           				system("cls");
           				cout<<"击中!"<<endl;
           				bf=bf-ag;
           				system("color 40");
						Sleep(1000);
           				system("cls");
           				system("color 07");
           				break;
					   }
					   else
					   {
           				system("cls");
           				cout<<"没中!"<<endl;
           				system("color c0");
						   Sleep(1000);
           				system("cls");
				    	system("color 07");					   	
					   }
				   }	
           		if(f=='w')
           		{
           			if(b[ty-1][ui]=='-' ||b[ty-1][ui]=='|')
           			{
					   system("cls");
              			cout<<"无法过"<<endl;
           			Sleep(1000);
           			system("cls");        				
					   }
					else if(b[ty-1][ui]=='x')
					{
						b[ty][ui]='.';
						b[ty-1][ui]='A';
						ty--;
						af=af+1;
					}
					else if(b[ty-1][ui]=='s')
					{
						b[ty][ui]='.';
						b[ty-1][ui]='A';
						ty--;
						As=As+1;
				}
					else if(b[ty-1][ui]=='g')
					{
						b[ty][ui]='.';
						b[ty-1][ui]='A';
						ty--;
						ag=ag+1;
					}
                    else if(b[ty-1][ui]=='.')
                    {
                    	b[ty][ui]='.';
                    	b[ty-1][ui]='A';
                    	ty--;
					}
				   }
				   if(f=='s')
				   {
          			if(b[ty+1][ui]=='-' ||b[ty+1][ui]=='|')
           			{
					   system("cls");
              			cout<<"无法过"<<endl;
           			Sleep(1000);
           			system("cls");        				
					   }
					else if(b[ty+1][ui]=='x')
					{
						b[ty][ui]='.';
						b[ty+1][ui]='A';
						ty++;
						af=af+1;
					}
					else if(b[ty+1][ui]=='s')
					{
						b[ty][ui]='.';
						b[ty+1][ui]='A';
						ty++;
						As=As+1;
				}
					else if(b[ty+1][ui]=='g')
					{
						b[ty][ui]='.';
						b[ty+1][ui]='A';
						ty++;
						ag=ag+1;
					}
                    else if(b[ty+1][ui]=='.')
                    {
                    	b[ty][ui]='.';
                    	b[ty+1][ui]='A';
                    	ty++;
					}		   	
				   }
			   if(f=='a')
			   {
          			if(b[ty][ui-1]=='-' ||b[ty][ui-1]=='|')
           			{
					   system("cls");
              			cout<<"无法过"<<endl;
           			Sleep(1000);
           			system("cls");        				
					   }
					else if(b[ty][ui-1]=='x')
					{
						b[ty][ui]='.';
						b[ty][ui-1]='A';
						ui--;
						af=af+1;
					}
					else if(b[ty][ui-1]=='s')
					{
						b[ty][ui]='.';
						b[ty][ui-1]='A';
						ui--;
						As=As+1;
				}
					else if(b[ty][ui-1]=='g')
					{
						b[ty][ui]='.';
						b[ty][ui-1]='A';
						ui--;
						ag=ag+1;
					}
                    else if(b[ty][ui-1]=='.')
                    {
                    	b[ty][ui]='.';
                    	b[ty][ui-1]='A';
                    	ui--;
					}			   	
			   }
			   if(f=='d')
           	  {
          			if(b[ty][ui+1]=='-' ||b[ty][ui+1]=='|')
           			{
					   system("cls");
              			cout<<"无法过"<<endl;
           			Sleep(1000);
           			system("cls");        				
					   }
					else if(b[ty][ui+1]=='x')
					{
						b[ty][ui]='.';
						b[ty][ui+1]='A';
						ui++;
						af=af+1;
					}
					else if(b[ty][ui+1]=='s')
					{
						b[ty][ui]='.';
					    b[ty][ui+1]='A';
						ui++;
						As=As+1;
				}
					else if(b[ty][ui+1]=='g')
					{
						b[ty][ui]='.';
						b[ty][ui+1]='A';
						ui++;
						ag=ag+1;
					}
                    else if(b[ty][ui+1]=='.')
                    {
                    	b[ty][ui]='.';
                    	b[ty][ui+1]='A';
                    	ui++;
					}					   
			   }

				 }		   	
		   ah--;
		}
	
 } 
		 if(o==2) 
		{
           for(int ii=1;ii<=Bs;ii++)
           {	    	
	    	system("cls");
            for(int i=0;i<20;i++)
            {
    	    for(int j=0;j<20;j++)
             cout<<b[i][j]<<" ";
             cout<<endl;
	        }		  
	    	cout<<"B玩家选择方向"<<endl;
	    	cout<<"速度:"<<Bs<<endl;
			cout<<"血量:"<<string(bf,'*')<<endl;
           cout<<"攻击:"<<bg<<endl;
           cout<<"攻击距离:1(按g键攻击)"<<endl; 
           cout<<"还可以走:"<<bh<<"步"<<endl;
            char k;
           	cin>>k;
          
           	if(op==1)
           	{
          		if(k=='g')
           		{
           			if(b[ty-1][ui]=='A' ||b[ty+1][ui]=='A'||b[ty][ui+1]=='A' || b[ty][ui-1]=='A'|| b[ty-1][ui-1]=='A'|| b[ty+1][ui-1]=='A'|| b[ty-1][ui+1]=='A'|| b[ty+1][ui+1]=='A' )
           			{
           				system("cls");
           				cout<<"击中!"<<endl;
           				af=af-bg;
           				system("color 40");
						Sleep(1000);
           				system("cls");
           				system("color 07");
           				break;
					   }
					   else
					   {
           				system("cls");
           				cout<<"没中!"<<endl;
           				system("color c0");
						   Sleep(1000);
           				system("cls");
				    	system("color 07");					   	
					   }
				   }
            		if(k=='w')
           		{
           			if(b[ty-1][ui]=='-' ||b[ty-1][ui]=='|')
           			{
					   system("cls");
              			cout<<"无法过"<<endl;
           			Sleep(1000);
           			system("cls");        				
					   }
					else if(b[ty-1][ui]=='x')
					{
						b[ty][ui]='.';
						b[ty-1][ui]='B';
						ty--;
						bf=bf+1;
					}
					else if(b[ty-1][ui]=='s')
					{
						b[ty][ui]='.';
					    b[ty-1][ui]='B';
						ty--;
						Bs=Bs+1;
				}
					else if(b[ty-1][ui]=='g')
					{
						b[ty][ui]='.';
						b[ty-1][ui]='B';
						ty--;
						bg=bg+1;
					}
                    else if(b[ty-1][ui]=='.')
                    {
                    	b[ty][ui]='.';
                    	b[ty-1][ui]='B';
                    	ty--;
					}
				   }
				   if(k=='s')
				   {
          			if(b[ty+1][ui]=='-' ||b[ty+1][ui]=='|')
           			{
					   system("cls");
              			cout<<"无法过"<<endl;
           			Sleep(1000);
           			system("cls");        				
					   }
					else if(b[ty+1][ui]=='x')
					{
						b[ty][ui]='.';
						b[ty+1][ui]='B';
						ty++;
						bf=bf+1;
					}
					else if(b[ty+1][ui]=='s')
					{
						b[ty][ui]='.';
					   b[ty+1][ui]='B';
						ty++;
						Bs=Bs+1;
				}
					else if(b[ty+1][ui]=='g')
					{
						b[ty][ui]='.';
						b[ty+1][ui]='B';
						ty++;
						bg=bg+1;
					}
                    else if(b[ty+1][ui]=='.')
                    {
                    	b[ty][ui]='.';
                    	b[ty+1][ui]='B';
                    	ty++;
					}		   	
				   }
			   if(k=='a')
			   {
          			if(b[ty][ui-1]=='-' ||b[ty][ui-1]=='|')
           			{
					   system("cls");
              			cout<<"无法过"<<endl;
           			Sleep(1000);
           			system("cls");        				
					   }
					else if(b[ty][ui-1]=='x')
					{
						b[ty][ui]='.';
						b[ty][ui-1]='B';
						ui--;
						bf=bf+1;
					}
					else if(b[ty][ui-1]=='s')
					{
						b[ty][ui]='.';
					  b[ty][ui-1]='B';
						ui--;
						Bs=Bs+1;
				}
					else if(b[ty][ui-1]=='g')
					{
						b[ty][ui]='.';
						b[ty][ui-1]='B';
						ui--;
						bg=bg+1;
					}
                    else if(b[ty][ui-1]=='.')
                    {
                    	b[ty][ui]='.';
                    	b[ty][ui-1]='B';
                    	ui--;
					}			   	
			   }
			   if(k=='d')
           	  {
          			if(b[ty][ui+1]=='-' ||b[ty][ui+1]=='|')
           			{
					   system("cls");
              			cout<<"无法过"<<endl;
           			Sleep(1000);
           			system("cls");        				
					   }
					else if(b[ty][ui+1]=='x')
					{
						b[ty][ui]='.';
						b[ty][ui+1]='B';
						ui++;
						bf=bf+1;
					}
					else if(b[ty][ui+1]=='s')
					{
						b[ty][ui]='.';
					  b[ty][ui+1]='B';
						ui++;
						Bs=Bs+1;
				}
					else if(b[ty][ui+1]=='g')
					{
						b[ty][ui]='.';
						b[ty][ui+1]='B';
						ui++;
						bg=bg+1;
					}
                    else if(b[ty][ui+1]=='.')
                    {
                    	b[ty][ui]='.';
                    	b[ty][ui+1]='B';
                    	ui++;
					}					   
			   }          		
			   }
           	if(op==2)
           	{
         		if(k=='g')
           		{
           			if(b[qw-1][er]=='A' ||b[qw+1][er]=='A'||b[qw][er+1]=='A' || b[qw][er-1]=='A'|| b[qw-1][er-1]=='A'|| b[qw+1][er-1]=='A'|| b[qw-1][er+1]=='A'|| b[qw+1][er+1]=='A' )
           			{
           				system("cls");
           				cout<<"击中!"<<endl;
           				af=af-bg;
           				system("color 40");
						Sleep(1000);
           				system("cls");
           				system("color 07");
           				break;
					   }
					   else
					   {
           				system("cls");
           				cout<<"没中!"<<endl;
           				system("color c0");
						   Sleep(1000);
           				system("cls");
				    	system("color 07");					   	
					   }
				   }
            		if(k=='w')
           		{
           			if(b[qw-1][er]=='-' ||b[qw-1][er]=='|')
           			{
					   system("cls");
              			cout<<"无法过"<<endl;
           			Sleep(1000);
           			system("cls");        				
					   }
					else if(b[qw-1][er]=='x')
					{
						b[qw][er]='.';
						b[qw-1][er]='B';
						qw--;
						bf=bf+1;
					}
					else if(b[qw-1][er]=='s')
					{
						b[qw][er]='.';
						b[qw-1][er]='B';
						qw--;
						Bs=Bs+1;
				}
					else if(b[qw-1][er]=='g')
					{
						b[qw][er]='.';
						b[qw-1][er]='B';
						qw--;
						bg=bg+1;
					}
                    else if(b[qw-1][er]=='.')
                    {
                    	b[qw][er]='.';
                    	b[qw-1][er]='B';
                    	qw--;
					}
				   }
				   if(k=='s')
				   {
           			if(b[qw+1][er]=='-' ||b[qw+1][er]=='|')
           			{
					   system("cls");
              			cout<<"无法过"<<endl;
           			Sleep(1000);
           			system("cls");        				
					   }
					else if(b[qw+1][er]=='x')
					{
						b[qw][er]='.';
						b[qw+1][er]='B';
						qw++;
						bf=bf+1;
					}
					else if(b[qw+1][er]=='s')
					{
						b[qw][er]='.';
						b[qw+1][er]='B';
						qw++;
						Bs=Bs+1;
				}
					else if(b[qw+1][er]=='g')
					{
						b[qw][er]='.';
						b[qw+1][er]='B';
						qw++;
						bg=bg+1;
					}
                    else if(b[qw+1][er]=='.')
                    {
                    	b[qw][er]='.';
                    	b[qw+1][er]='B';
                    	qw++;				   	
				   }         		
				} 
				if(k=='a')
			   {
           			if(b[qw][er-1]=='-' ||b[qw][er-1]=='|')
           			{
					   system("cls");
              			cout<<"无法过"<<endl;
           			Sleep(1000);
           			system("cls");        				
					   }
					else if(b[qw][er-1]=='x')
					{
						b[qw][er]='.';
						b[qw][er-1]='B';
						er--;
						bf=bf+1;
					}
					else if(b[qw][er-1]=='s')
					{
						b[qw][er]='.';
						b[qw][er-1]='B';
						er--;
						Bs=Bs+1;
				}
					else if(b[qw][er-1]=='g')
					{
						b[qw][er]='.';
						b[qw][er-1]='B';
						er--;
						bg=bg+1;
					}
                    else if(b[qw][er-1]=='.')
                    {
                    	b[qw][er]='.';
                    	b[qw][er-1]='B';
                    	er--;			   	
				   }			   	
			   }
			   if(k=='d')
           	  {
           			if(b[qw][er+1]=='-' ||b[qw][er+1]=='|')
           			{
					   system("cls");
              			cout<<"无法过"<<endl;
           			Sleep(1000);
           			system("cls");        				
					   }
					else if(b[qw][er+1]=='x')
					{
						b[qw][er]='.';
						b[qw][er+1]='B';
						er++;
						bf=bf+1;
					}
					else if(b[qw][er+1]=='s')
					{
						b[qw][er]='.';
						b[qw][er+1]='B';
						er++;
						Bs=Bs+1;
				}
					else if(b[qw][er+1]=='g')
					{
						b[qw][er]='.';
						b[qw][er+1]='B';
						er++;
						bg=bg+1;
					}
                    else if(b[qw][er+1]=='.')
                    {
                    	b[qw][er]='.';
                    	b[qw][er+1]='B';
                    	er++;				   	
				   }
				 }
       }
			bh--;
		 } 
			
	     o=0;
	 }
	 if(z==1)
	 {
	 for(int i=1;i<=18;i++)
	 {
	 	int g=random(3);
	 	int l=random(18);
		 if(g==1)
		 {
		 	b[i][l+1]='s';
		 } 
		 else if(g==2)
		 {
		 	b[i][l+1]='x';
		 }
		 else
		 b[i][l+1]='g';
	 }	 	
	 }
	 if(af<=0) 
	 {
	 	system("cls");
	 	cout<<"B玩家赢"<<endl;
		 Sleep(5000);
		  break;
	 }
	 if(bf<=0)
	 {
	 	system("cls");
	 	cout<<"A玩家赢"<<endl;
		 Sleep(5000);
		  break;	 	
	 } 
	 if(z==9)
	 {
	 	z=0;
	 }
        z++;
	 o++; 
	 system("cls");
}
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值