使用C/C++語言生成一個隨機迷宮游戲
迷宮相信大家都走過,畢竟書本啊啥啥啥的上面都會有迷宮,主要就是考驗?zāi)愕倪壿嬎季S。那么我們學習C/C++也是需要學習到邏輯思維方式的,那今天我就來分享一下,如何用C/C++打造一個簡單的隨機迷宮游戲。(代碼的話我只截取了如何創(chuàng)建迷宮的代碼,如果想要全套代碼的話可以加群:558502932,群內(nèi)有很多C/C++學習資料提供學習,大家一起交流進步)
完整版的迷宮游戲效果如下:
代碼如下:
//創(chuàng)建迷宮 void CreateMaze(int x,int y) { //定義4個方向 int dir[4][2] = { 0, 1, 1, 0, 0, -1, -1, 0 }; //回答錯誤 //打亂方向 int j,temp; //temp 臨時變量 for (int i = 0; i < 4; i++) { j = rand() % 4; //0-3 數(shù)組的下標 //j隨機之后 j同一次還會不會變 temp = dir[i][0]; dir[i][0] = dir[j][0]; dir[j][0] = temp; temp = dir[i][1]; dir[i][1] = dir[j][1]; dir[j][1] = temp; } map[x][y] = ROAD; //把這個點賦值成路 for (int i = 0; i < 4; i++) { if (map[x + 2 * dir[i][0]][y + 2 * dir[i][1]] == WALL) //向上 0 1 //隔壁的一個 { map[x + dir[i][0]][y + dir[i][1]] = ROAD; CreateMaze(x + 2*dir[i][0], y + 2*dir[i][1]); } } } int main() { srand((unsigned int)time(NULL)); for ( int i = 0; i <= HEIGHT+1; i++) { for (int j = 0; j <= WIDTH + 1; j++) { if (i == 0 || i == HEIGHT + 1 || j == 0 || j == WIDTH + 1) { map[i][j] = ROAD; } else { map[i][j] = WALL; } } } CreateMaze(2 * (rand() % (HEIGHT / 2) + 1), 2 * (rand() % (WIDTH / 2) + 1)); //邊界 for (int i = 0; i <= HEIGHT + 1; i++) { map[i][0] = WALL; map[i][WIDTH + 1] = WALL; } for (int i = 0; i <=WIDTH+1; i++) { map[0][i] = WALL; map[HEIGHT + 1][i] = WALL; } //畫出入口和出口 map[2][1] = START; map[HEIGHT - 1][WIDTH] = END; for (int i = 1; i <= HEIGHT; i++) { for (int j = 1; j <= WIDTH; j++) { paint(i, j); } } paint(0, 0); return 0; }
這只是里面的一部分代碼,所以你們復制粘貼也是沒用的,給你們代碼只是輔導作用,主要是你們要知道編程思想及程序設(shè)計的思路,希望你們能學好C/C++學成C/C++咯。
最后,如果想要全套代碼的話可以加群:558502932,群內(nèi)有大量學習資料提供學習,大家共同學習,共同進步。
以上所述是小編給大家介紹的使用C/C++語言生成一個隨機迷宮游戲,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
C++實現(xiàn)簡易UDP網(wǎng)絡(luò)聊天室
這篇文章主要為大家詳細介紹了C++實現(xiàn)簡易UDP網(wǎng)絡(luò)聊天室,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-07-07C/C++ 運用Npcap發(fā)送UDP數(shù)據(jù)包的完美過程
UDP 是一種無連接、輕量級的傳輸層協(xié)議,與 TCP 相比,它不提供可靠性、流控制和錯誤恢復機制,但卻更加簡單且具有較低的開銷,這篇文章主要介紹了C/C++ 運用Npcap發(fā)送UDP數(shù)據(jù)包,需要的朋友可以參考下2023-11-11