推箱子:用c++写一个推箱子小游戏

**

推箱子:用c++写一个推箱子小游戏**

推箱子?小游戏?没错,于我而言,用来打发无聊 初中课余时光的好办法,当然就是写一个小游戏再自己玩个十几遍了吖当然,也是适合广大编程爱好者编写的程序,很好理解哟~~
对了,确定不给个赞或者关注?嘿嘿
话不多说,直接开始!

  • 游戏介绍:游戏中“!”是人,“o”是箱子,“x“是出口,需要做的是用人推着箱子,使箱子到出口,就酱
  • 注意事项:注意何时用”==“,何时用”=“,区分三种函数,理清”{}“的位置,画地图时也要检查一下
    具体代码如下
#include <iostream>
#include <cstdlib>
using namespace std;
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;
		}
	}
	void PlayGame(){
		int r,l;              //人的下标 
		for(int i=0;i<=9;i++){
			for(int j=0;j<=9;j++){
				if(map[i][j]=='!'){
					r=i;          //r,l相当于地图的宽度和长度 
					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=='b'||ch=='B'){
			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]=' ';
			}
				
			}
			
		}
	}
	int main(){
		while(map[8][7]=='x'){
			DrawMap();
			PlayGame(); 
			system("cls");
		} 
	
		DrawMap();
		PlayGame();
		return 0;
	} 



嗯嗯?没啦~100行出头的代码,满足我一个下午的快乐,走之前请留下一个赞,关注一下哦,多谢大家!

猜你喜欢

转载自blog.csdn.net/m0_49958869/article/details/107886240