“我”与“鬼”追赶游戏-创新互联
本文章是用C++纯字符打印来实现“我”与“鬼”的追赶游戏,主要是玩家操纵“我”来躲避“鬼”
创新互联公司坚信:善待客户,将会成为终身客户。我们能坚持多年,是因为我们一直可值得信赖。我们从不忽悠初访客户,我们用心做好本职工作,不忘初心,方得始终。十载网站建设经验创新互联公司是成都老牌网站营销服务商,为您提供成都网站设计、网站制作、外贸营销网站建设、网站设计、H5建站、网站制作、高端网站设计、成都微信小程序服务,给众多知名企业提供过好品质的建站服务。1.思路
使用换行代表纵轴坐标,使用空格代表横向坐标
2.代码实现
(1)头文件
在这里我们没有只用一个万能头文件,因为万能头文件并不包含
#include//万能头文件
#include//接收按键信息
using namespace std;
int main()
{return 0;
}
(2)变量(在主函数内)
int x=10,y=4,gx,gy;//xy表示“我”的坐标,gxgy表示“鬼”的坐标
char yd;//检测按键的变量
int sjs,a;
srand(time(0));//随机数
sjs=rand()%10+1;//随机数
gx=sjs*2;
gy=sjs*3;
cout<<"WASD移动,你的目标是躲开鬼离开这个房间"<
(3)
接下来写一个死循环,来支持程序运行,注意,接下来的程序均在这个死循环当中
for(int i=1;i>0;i++)
{}
(4)控制以及变量变化
这里主要涉及到的就是“鬼”追赶“我”的运动轨迹,对这两者的坐标计算,以及运用到_getch()函数来接收键盘按键的信号;(wasd移动)而这里调用系统指令“cls”,我们放到后续的代码中讲;
运用if语句判断按下的是什么上下左右键;
在代码中“鬼”的追赶路径尊崇着x轴(横向)优先
yd=_getch();//按下按键
system("cls");//清屏
if(yd=='w')
{ y--;
}
if(yd=='s')
{ y++;
}
if(yd=='a')
{ x--;
}
if(yd=='d')
{ x++;
}
if(gx gx++;
}
else
{ if(gx>x)
{ gx--;
}
else
{ if(gygy++;
}
else
{if(gy>y)
{gy--;
}
else
{cout<<"你输了"; //两个坐标都==“我”的坐标,所以肯定是碰到鬼了
}
}
}
}
(5)打印字符
因为这个程序是纯打印字符,所以我们需要判断是鬼先输出还是我先输出,而判断这个的唯一标准是纵轴(y)
纵轴在另外一个角色上的就先输出,横轴同理。
if(gy>y)
{ for(int iy=1;iy<=y;iy++)//这里的iy,ix都是用来造循环的
{ cout< cout<<" ";
}
cout<<"我";
for(int iy=1;iy<=gy-y;iy++)
{ cout< cout<<" ";
}
cout<<"鬼";
for(int ii=1;ii<=25-gy;ii++)//这里的目的就是为了填满已打印出来的字符的剩余部分,不然运行程序时人物就会一直在底下
{ cout<
接下来依旧是打印字符,上面那种情况是“鬼”的纵轴大于“我”的纵轴,接下来还要进行x轴的判断,以及“鬼”的纵轴等于“我”的纵轴,“鬼”的纵轴小于“我”的纵轴;
if(y==gy)
{ for(int iy=1;iy<=gy||iy<=y;iy++)
{ cout< for(int ix=1;ix<=x;ix++)
{cout<<" ";//这里用两个空格是因为实际上一个空格只有半个字符的宽度
}
cout<<"我";
for(int ix=1;ix<=gx-x;ix++)
{cout<<" ";
}
cout<<"鬼";
for(int ii=1;ii<=25-gy;ii++)
{cout< for(int ix=1;ix<=gx;ix++)
{cout<<" ";
}
cout<<"鬼";
for(int ix=1;ix<=x-gx;ix++)
{cout<<" ";
}
cout<<"我";
for(int ii=1;ii<=25-y;ii++)
{cout<
(6)判断输赢
我们已经做好了“我”的移动以及“鬼”的人机移动,接下来就是要加入一个门,来判定“我”有没有碰到“鬼”以及“我”有没有走到门,实现这个主要就是测量出门的xy坐标,鬼的xy坐标是否与“我”的相同即可;
cout<<" 门 ";
if(gy==y)//如果“鬼”和“我”的纵轴相等(这里可以采用gy==y&&gx==x)
{ if(gx==x)//如果“鬼”和“我”的横轴相等
{ system("cls");//清屏,游戏结束
cout<<"你输了";
}
}
if(x==24&&y==24)
{ for(int ii=1;ii<=25;ii++)
{ cout<
这样到这里整个程序的开发就完毕了,难度是很小的,只要掌握三种基本结构基本就可以独立完成这样的一个小程序
接下来放出全代码:
#include#includeusing namespace std;
int main()
{int x=10,y=6,gx,gy;
char yd;
int sjs,a;
srand(time(0));//随机数
sjs=rand()%10+1;//随机数
gx=sjs;
gy=sjs;
cout<<"WASD移动,你的目标是躲开鬼离开这个房间"<=0;i++)
{yd=_getch();
system("cls");
if(yd=='w')
{ y--;
}
if(yd=='s')
{ y++;
}
if(yd=='a')
{ x--;
}
if(yd=='d')
{ x++;
}
if(gx gx++;
}
else
{ if(gx>x)
{ gx--;
}
else
{ if(gygy++;
}
else
{if(gy>y)
{gy--;
}
else
{cout<<"你输了";
}
}
}
}
if(gy>y)
{ for(int iy=1;iy<=y;iy++)
{ cout< cout<<" ";
}
cout<<"我";
for(int iy=1;iy<=gy-y;iy++)
{ cout< cout<<" ";
}
cout<<"鬼";
for(int ii=1;ii<=25-gy;ii++)
{ cout<gy)
{ for(int iy=1;iy<=gy;iy++)
{ cout< cout<<" ";
}
cout<<"鬼";
for(int iy=1;iy<=y-gy;iy++)
{ cout< cout<<" ";
}
cout<<"我";
for(int ii=1;ii<=25-y;ii++)
{ cout< for(int iy=1;iy<=gy||iy<=y;iy++)
{ cout< for(int ix=1;ix<=x;ix++)
{cout<<" ";
}
cout<<"我";
for(int ix=1;ix<=gx-x;ix++)
{cout<<" ";
}
cout<<"鬼";
for(int ii=1;ii<=25-gy;ii++)
{cout< for(int ix=1;ix<=gx;ix++)
{cout<<" ";
}
cout<<"鬼";
for(int ix=1;ix<=x-gx;ix++)
{cout<<" ";
}
cout<<"我";
for(int ii=1;ii<=25-y;ii++)
{cout< if(gx==x)
{ system("cls");
cout<<"你输了";
}
}
if(x==24&&y==24)
{ for(int ii=1;ii<=25;ii++)
{ cout<
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前标题:“我”与“鬼”追赶游戏-创新互联
URL分享:http://ybzwz.com/article/djgise.html