這篇文章將為大家詳細(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)查看源代碼中需要修改地方的備注。
截圖
代碼
#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