自创的。。。
代码如下:
#include<iostream>
#include<cmath>
#include<windows.h>
#include<conio.h>
using namespace std;
int start;
int x_red,y_red,x_blue,y_blue;
int i,j; 
char fight_red,fight_blue;
int small_red,big_red,small_blue,big_blue;
char ground[10][10];
char red='@',blue='&';
char move_red,move_blue;
bool game=true;
int life_red=400,life_blue=400;
void color(int a)
{
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
void first()
{
	small_red=0;
	big_red=0;
	small_blue=0;
	big_blue=0;
	red='@';
	blue='&';
	game=true;
	life_red=400;
	life_blue=400;
}
void map() 
{
	system("cls");
	color(15);
	if(small_red>=2)
	{
		color(14);
		cout<<'!';
		color(15);
	}
	if(big_red>=5)
	{
		color(12);
		cout<<'*';
		color(15);
	}
	cout<<"red: "<<life_red<<"  ";
	if(small_blue>=3)
	{
		color(14);
		cout<<'!';
		color(15);
	}
	if(big_blue>=4)
	{
		color(12);
		cout<<'*';
		color(15);
	}
	cout<<"blue: "<<life_blue<<endl;
	for(i=1;i<=10;i++)
	{
		for(j=1;j<=10;j++)
	    {
	  		if(i>1&&i<10&&j>1&&j<10)
	  		{
	  			if(i==x_red&&j==y_red)
				{
					color(12);
					cout<<red;
					if(red=='X') red='@';
				}
	  			else if(i==x_blue&&j==y_blue)
				{
					color(11);
				  	cout<<blue;
				  	if(blue=='X') blue='&';
				}
	  			else
				{
				  	if(i%3==0&&j%3==0) ground[i][j]='#';
					else ground[i][j]=' ';
					color(10);
					cout<<ground[i][j];
				}
			}
			else
			{
				ground[i][j]='#';
				color(10);
				cout<<ground[i][j];
			}
	    }
	    cout<<endl;
	}
	Sleep(300);
}
void red_move()
{
	switch(move_red)
	{
		case 'w':
			if(x_red-1==x_blue&&y_red==y_blue)
			break;
			else if(ground[x_red-1][y_red]!='#')
			x_red--;
		break;
		case 's':
			if(x_red+1==x_blue&&y_red==y_blue)
			break;
			if(ground[x_red+1][y_red]!='#')
			x_red++;
		break;
		case 'a':
			if(x_red==x_blue&&y_red-1==y_blue)
			break;
			if(ground[x_red][y_red-1]!='#')
			y_red--;
		break;
		case 'd':
			if(x_red==x_blue&&y_red+1==y_blue)
			break;
			if(ground[x_red][y_red+1]!='#')
			y_red++;
		break;
	}
	small_red++;
}
void blue_move()
{
	switch(move_blue)
	{
		case 'i':
			if(x_blue-1==x_red&&y_blue==y_red)
			break;
			else if(ground[x_blue-1][y_blue]!='#')
			x_blue--;
		break;
		case 'k':
			if(x_blue+1==x_red&&y_blue==y_red)
			break;
			if(ground[x_blue+1][y_blue]!='#')
			x_blue++;
		break;
		case 'j':
			if(x_blue==x_red&&y_blue-1==y_red)
			break;
			if(ground[x_blue][y_blue-1]!='#')
			y_blue--;
		break;
		case 'l':
			if(x_blue==x_red&&y_blue+1==y_red)
			break;
			if(ground[x_blue][y_blue+1]!='#')
			y_blue++;
		break;
	}
	small_blue++;
	cout<<endl;
}
void red_fight()
{
	switch(fight_red)
	{
		case 'q':
			if(small_red>=2&&abs(x_red-x_blue)<=2&&abs(y_red-y_blue)<=2)
			{
				life_blue-=5;
				blue='X';
				if(life_blue<=0)
				{
					life_blue=0;
					game=false;
				}
				small_red-=2;
				big_red++;
			}
		break;
		case 'e':
			if(big_red>=5&&abs(x_red-x_blue)<=4&&abs(y_red-y_blue)<=4)
			{
				life_blue-=25;
				blue='X';
				if(life_blue<=0)
				{
					life_blue=0;
					game=false;
				}
				big_red-=5;
				small_red++;
			}
		break;
	}
	map();
}
void blue_fight()
{
	switch(fight_blue)
	{
		case 'u':
			if(small_blue>=3&&abs(x_red-x_blue)<=2&&abs(y_red-y_blue)<=2)
			{
				life_red-=10;
				red='X';
				if(life_red<=0)
				{
					life_red=0;
					game=false;
				}
				small_blue-=3;
				big_blue++;
			}
		break;
		case 'o':
			if(big_blue>=4&&abs(x_red-x_blue)<=4&&abs(y_red-y_blue)<=4)
			{
				life_red-=20;
				red='X';
				if(life_red<=0) 
				{
					life_red=0;	
					game=false;
				}
				big_blue-=4;
				small_blue++;
			}
		break;
	}
	map();
	cout<<endl;
}
void doing()
{
	char input;
	if(kbhit())
	{
		input=getch();
		if(input=='q'||input=='e')
		{
			fight_red=input;
			red_fight();
		}
		if(input=='a'||input=='s'||input=='d'||input=='w')
		{
			move_red=input;
			red_move();
		}
		if(input=='u'||input=='o')
		{
			fight_blue=input;
			blue_fight();
		}
		if(input=='j'||input=='k'||input=='l'||input=='i')
		{
			move_blue=input;
			blue_move();
		}
		map();
	}
}
void choose_play();
void procedure_of_play()
{
	x_red=2;
	y_red=5;
	x_blue=9;
	y_blue=5;
	system("cls");
	color(15);
	cout<<"Welcome to Kings' World!"<<endl;
	cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;
	cout<<"$ # # #                #       #         #   # $"<<endl;
	cout<<"$ ##                #  #   #   #         #   # $"<<endl;
	cout<<"$ #   # ### ###  ## #   #  #  #  ### ### # ### $"<<endl;
	cout<<"$ ##  # # # # # #       # # # #  # # #   # # # $"<<endl;
	cout<<"$ # # # # # ###  ##      #   #   ### #   # ### $"<<endl;
	cout<<"$             #    #                           $"<<endl;
	cout<<"$           ### ###                            $"<<endl;
	cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;
	cout<<"                        Made by Peter Winchester"<<endl;
	cout<<"Red player uses a, s, d, w to move, and uses q and e to fight."<<endl;
	cout<<"Blue player uses j, k, l, i to move, and uses u and o to fight."<<endl;
	cout<<"The @ is the red player, the & is the blue player."<<endl;
	cout<<"A ! before red or blue means a small fight, use q or u to do it."<<endl;
	cout<<"A * before red or blue means a big fight, use e or o to do it."<<endl;
	cout<<"Please input 1 to play game."<<endl;
	cin>>start;
	if(start==1)
	{
		first();
		cout<<endl;
		map();
		while(game==true)
		{
			doing();
		}
		cout<<endl;
		color(15);
		if(life_red==0&&life_blue>0)
		cout<<"Blue wins!"<<endl;
		else if(life_blue==0&&life_red>0)
		cout<<"Red wins!"<<endl;
		else cout<<"Tie!"<<endl;
		cout<<"Do you want to play again?"<<endl;
		cout<<"1.yes 2.no"<<endl;
		choose_play();
	}
	else cout<<"Game over!";
}
void choose_play()
{
	int choose;
	cin>>choose;
	if(choose==1) procedure_of_play();
	else if(choose==2) cout<<"Game over!";
	else
	{
		cout<<"Please choose again:"<<endl;
		choose_play();
	}
}
int main()
{
	procedure_of_play();
	return 0;
}
复制到你的编译器上运行下试试。