一个小游戏。
效果:
代码:
#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");
}
}