人r躲避木乃伊m的追击,人走一步,木乃伊走两步,若被抓到则输,若人走到出口c且木乃伊没有追上则赢。
#include<iostream>
#include<windows.h>
using namespace std;
int rrow=5;int rcol=7;//人的位置
int mrow=4;int mcol=4;//木乃伊位置
int crow=1;int ccol=11;//出口位置
char M[7][17]=
{
{"################"},
{"# # c #"},
{"# #### #"},
{"# # # #"},
{"# m # #"},
{"# r #"},
{"################"}
};
void showmap();
void manmove(char x);
void mnymove();
int iswin();
int islose();
//显示地图
void showmap()
{
int i,j;
for(i=0;i<7;i++)
{
for(j=0;j<16;j++)
{
cout<<M[i][j];
}
cout<<endl;
}
}
//人走一步
void manmove(char x)
{
int r,c,n;
r=rrow;c=rcol;
if(x=='a')
{
c=c-1;
}
else if(x=='s')
{
r=r+1;
}
else if(x=='d')
{
c=c+1;
}
else if(x=='w')
{
r=r-1;
}
if(M[r][c]!='#')
{
M[rrow][rcol]=' ';
rrow=r;
rcol=c;
M[rrow][rcol]='r';
}
}
//木乃伊走一步
void mnymove()
{
int r,c;
r=mrow;c=mcol;
if(mrow<rrow)
{
r=r+1;
}
else if(mrow>rrow)
{
r=r-1;
}
else
{
if(mcol>rcol)
{
c=c-1;
}
else if(mcol<rcol)
{
c=c+1;
}
}
if(M[r][c]!='#')
{
M[mrow][mcol]=' ';
mrow=r;
mcol=c;
M[mrow][mcol]='m';
}
}
//人是否被抓,是否赢
int iswin()
{
int flag;
flag=0;
if(rrow==crow&&rcol==ccol&&rrow!=mrow&&rcol!=mcol)
{
flag=1;
}
return (flag);
}
int islose()
{
int flag;
flag=0;
if(rrow==mrow&&rcol==mcol)
{
flag=1;
}
return (flag);
}
//主控
int main()
{
while(1)
{
showmap();
char n;
cin>>n;
manmove(n);
mnymove();
mnymove();
if(iswin())
{
cout<<"You Win!"<<endl;
break;
}
if(islose())
{
cout<<"You Lose!SB!"<<endl;
break;
}
system("cls");
}
}