纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

c++写推箱子小游戏 利用c++写一个简单的推箱子小游戏

诗一样的代码   2021-09-13 我要评论
想了解利用c++写一个简单的推箱子小游戏的相关内容吗诗一样的代码在本文为您仔细讲解c++写推箱子小游戏的相关知识和一些Code实例欢迎阅读和指正我们先划重点:c++推箱子游戏代码,推箱子游戏代码,C语言写推箱子游戏下面大家一起来学习吧

效果图

相信各位都肯定完整这种推箱子的小游戏游戏玩法很简单那就是一个人把所有的箱子推动到对应的位置那就可以赢了

那么我们接下来看看这个推箱子的游戏改怎么写

char map[10][10]=
	{
		{'#','#','#','#','#','#','#','#','#','#'},
		{'#','#','#','#',' ',' ','!',' ',' ','#'},
		{'#',' ',' ',' ',' ','o',' ',' ',' ','#'},
		{'#',' ',' ',' ',' ',' ',' ',' ',' ','#'},
		{'#','#',' ','#','#','#',' ','#','#','#'},
		{'#',' ',' ',' ',' ',' ',' ',' ',' ','#'},
		{'#',' ',' ',' ',' ',' ',' ',' ',' ','#'},
		{'#','#',' ','#',' ','#','#','#','#','#'},
		{'#','#',' ',' ',' ',' ',' ','x','#','#'},
		{'#','#','#','#','#','#','#','#','#','#'}
	};
	void DrawMap(){
		for(int i=0;i<=9;i++){
			for(int j=0;j<=9;j++){
				cout<<map[i][j];
			}
			cout<<endl;
		}
	}

首先先画出地图这里面的#是墙壁x是终点o是推动的箱子然后!是人空的字符就是通道别看界面比较简陋我们学的是算法只要思想学会了随便移植到哪个有界面的程序都是可以的

                int r,l;              //人的下标 
		for(int i=0;i<=9;i++){
			for(int j=0;j<=9;j++){
				if(map[i][j]=='!'){
					r=i;          //rl相当于地图的宽度和长度 
					l=j;
				}
			} 
		}

在一开始我们需要遍历并且获取人的坐标

cout<<"please enter w(up) s(down) a(left) b(right)"<<endl;
		char ch;
		cin>>ch; 
		if(ch=='w'||ch=='W'){         
			if(map[r-1][l]==' '){   //若往上走没有障碍物 
				map[r][l]==' ';      
				map[r-1][l]='!';    //走上去    
			}
			if(map[r-1][l]=='o'){    //若上面有箱子 
				if(map[r-2][l]==' '||map[r-2][l]=='x'){    //因为要推着箱子走所以要确保上面的上面还可以走或者到达终点 
					map[r-2][l]='o';
					map[r-1][l]='!';
					map[r][l]=' '; 
				} 
			}
		}
		if(ch=='s'||ch=='S'){
			if(map[r+1][l]==' '){
				map[r][l]=' ';
				map[r+1][l]='!';
			}
			if(map[r+1][l]=='o'){
				if(map[r+2][l]==' '||map[r+2][l]=='x'){
					map[r+2][l]='o';
					map[r+1][l]='!';
					map[r][l]=' ';
				}
			}
		}
		if(ch=='a'||ch=='A'){
			if(map[r][l-1]=' '){
				map[r][l]=' ';
				map[r][l-1]='!';
			}
			if(map[r][l-1]=='o'){
				if(map[r][l-2]==' '||map[r][l-2]=='x'){
					map[r][l-2]='o';
					map[r][l-1]='!';
					map[r][l]=' ';
				}
			}
		}
		if(ch=='d'||ch=='D'){
			if(map[r][l+1]==' '){
				map[r][l+1]='!';
				map[r][l]=' ';
			}
			if(map[r][l+1]=='o'){
				if(map[r][l+2]==' '||map[r][l+2]=='x'){
				map[r][l+2]='o';
				map[r][l+1]='!';
				map[r][l]=' ';
			}
				
			}
			
		}

这里就是进行wsad的上下左右操作然后操作时候需要判空判断人是否可以走动如果是墙壁就不能走动如果是箱子那还有判断箱子的前一格是否可以走动可以的话就直接推箱子了

总的来说这种游戏并不算太难如果是多个关卡的话可以选择加一个关卡地图配置文件然后让游戏策划进行配置设计游戏的地图才是这游戏的难点所在

总结


相关文章

猜您喜欢

  • C++内存模型和名称空间 C++内存模型和名称空间详解

    想了解C++内存模型和名称空间详解的相关内容吗Briwisdom在本文为您仔细讲解C++内存模型和名称空间的相关知识和一些Code实例欢迎阅读和指正我们先划重点:C++内存模型,C++名称空间下面大家一起来学习吧..
  • js setinterval延迟一秒解决 JavaScript setinterval延迟一秒解决方案

    想了解JavaScript setinterval延迟一秒解决方案的相关内容吗Nanchen_42在本文为您仔细讲解js setinterval延迟一秒解决的相关知识和一些Code实例欢迎阅读和指正我们先划重点:js,setinterval延迟一秒解决,js,setinterval延迟一秒解决方案下面大家一起来学习吧..

网友评论

Copyright 2020 www.sopisoft.net 【绿软下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式