91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何利用c++實現推箱子小游戲

發布時間:2021-09-13 16:32:20 來源:億速云 閱讀:120 作者:小新 欄目:開發技術

這篇文章主要介紹如何利用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;          //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=='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++實現推箱子小游戲”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

枝江市| 富平县| 建昌县| 六安市| 会同县| 门头沟区| 新巴尔虎左旗| 页游| 新蔡县| 绍兴县| 綦江县| 凌源市| 贡嘎县| 廊坊市| 平原县| 稻城县| 香港| 西乌珠穆沁旗| 宁南县| 布拖县| 卢氏县| 龙泉市| 建阳市| 宁海县| 乌苏市| 甘泉县| 邵东县| 托克托县| 张北县| 宽甸| 珠海市| 隆尧县| 九龙县| 海安县| 芦山县| 多伦县| 偃师市| 日土县| 阿荣旗| 濮阳市| 原平市|