真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C++實(shí)現(xiàn)迷宮小游戲的方法

這篇文章將為大家詳細(xì)講解有關(guān)C++實(shí)現(xiàn)迷宮小游戲的方法,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),通山企業(yè)網(wǎng)站建設(shè),通山品牌網(wǎng)站建設(shè),網(wǎng)站定制,通山網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,通山網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

介紹

本程序是根據(jù)廣度優(yōu)先遍歷算法的思想設(shè)計(jì)的一款迷宮游戲,游戲設(shè)計(jì)了兩種模式一種自動(dòng)游戲模式,一種手動(dòng)模式。因?yàn)轫?xiàng)目在 Linux 開(kāi)發(fā),需要在 Windows 開(kāi)發(fā)的,請(qǐng)查看源代碼中需要修改地方的備注。

截圖

C++實(shí)現(xiàn)迷宮小游戲的方法

C++實(shí)現(xiàn)迷宮小游戲的方法

C++實(shí)現(xiàn)迷宮小游戲的方法

代碼

#include 
#include  //標(biāo)準(zhǔn)庫(kù)
#include  //延時(shí)函數(shù)
#include  //getchar 
#include  
#include  //終端設(shè)置

#define MAX_X 20
#define MAX_Y 30
bool flag = false;
bool slow = false;
bool autogame = true;

using namespace std;

int maze[MAX_X][MAX_Y]; //迷宮

//路線棧
class stack_of_maze{
private:
 //記錄迷宮坐標(biāo)
 struct node
 {
 int x;
 int y;
 char direction; //上一步路徑(如何來(lái)的)
 node* next;
 };
 node* head;
public:
 stack_of_maze(){
 head = NULL;
 }

 ~stack_of_maze(){
 node* p = head;
 while(head!=NULL){
 head = head->next;
 delete p;
 p = head;
 }
 }

 //壓棧
 void push(int xx,int yy,char ddirection){
 node* new_node = new node;
 if(new_node!=NULL){
 new_node->x = xx;
 new_node->y = yy;
 new_node->direction = ddirection;
 new_node->next = NULL;

 if(head==NULL)
 head = new_node;
 else{
 new_node->next = head;
 head = new_node;
 }
 }
 else
 cout<<"內(nèi)存分配失敗"<next;
 xx = p->x;
 yy = p->y;
 delete p;
 }
 return head;
 }

 void print(){
 if(head!=NULL){
 node* p = head;
 while(p!=NULL){
 cout<<" "<x<<" "<y<<" "<direction<next;
 }
 }
 else
 cout<<"棧為空,打印失敗"<替代此函數(shù)
char getch(){
 char ch; 
 static struct termios oldt, newt; //保存原有終端屬性和新設(shè)置的終端屬性
 tcgetattr( STDIN_FILENO, &oldt); //獲得終端原有屬性并保存在結(jié)構(gòu)體oldflag

 //設(shè)置新的終端屬性
 newt = oldt;
 newt.c_lflag &= ~(ICANON);   
 tcsetattr( STDIN_FILENO, TCSANOW, &newt);

 //取消回顯
 system("stty -echo");
 ch = getchar();
 system("stty echo"); 

 tcsetattr( STDIN_FILENO, TCSANOW, &oldt); //讓終端恢復(fù)為原有的屬性
 return ch;
}

void move(){
 int x=1,y=1;  //出發(fā)點(diǎn) 
 while(1){
 switch(getch()){
 case 's':
 if(maze[x+1][y]==0){
  maze[x][y] = 0;
  x = x + 1;
  maze[x][y] = 7; //當(dāng)前位置
  printMaze();
  if((x==MAX_X-1)&&(y==MAX_Y-2)){
  cout<<"\n\n    成功走出"<

關(guān)于“C++實(shí)現(xiàn)迷宮小游戲的方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。


網(wǎng)站名稱:C++實(shí)現(xiàn)迷宮小游戲的方法
文章路徑:http://weahome.cn/article/jssisi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部