快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

“我”与“鬼”追赶游戏-创新互联

本文章是用C++纯字符打印来实现“我”与“鬼”的追赶游戏,主要是玩家操纵“我”来躲避“鬼”

创新互联公司坚信:善待客户,将会成为终身客户。我们能坚持多年,是因为我们一直可值得信赖。我们从不忽悠初访客户,我们用心做好本职工作,不忘初心,方得始终。十载网站建设经验创新互联公司是成都老牌网站营销服务商,为您提供成都网站设计、网站制作、外贸营销网站建设、网站设计、H5建站、网站制作、高端网站设计、成都微信小程序服务,给众多知名企业提供过好品质的建站服务。

1.思路
使用换行代表纵轴坐标,使用空格代表横向坐标

2.代码实现
(1)头文件
在这里我们没有只用一个万能头文件,因为万能头文件并不包含这个头文件的函数,而这个程序需要用到按键实现对人物的控制,为了保证游戏的可玩性,我们一般不会使用cin>>来实现按键操作;

#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元起,快前往官网查看详情吧


网页题目:“我”与“鬼”追赶游戏-创新互联
转载来源:http://6mz.cn/article/djgise.html