雷火电竞-中国电竞赛事及体育赛事平台

歡迎來(lái)到入門(mén)教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

使用C/C++語(yǔ)言生成一個(gè)隨機(jī)迷宮游戲

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊:

迷宮相信大家都走過(guò),畢竟書(shū)本啊啥啥啥的上面都會(huì)有迷宮,主要就是考驗(yàn)?zāi)愕倪壿嬎季S。那么我們學(xué)習(xí)C/C++也是需要學(xué)習(xí)到邏輯思維方式的,那今天我就來(lái)分享一下,如何用C/C++打造一個(gè)簡(jiǎn)單的隨機(jī)迷宮游戲。(代碼的話(huà)我只截取了如何創(chuàng)建迷宮的代碼,如果想要全套代碼的話(huà)可以加群:558502932,群內(nèi)有很多C/C++學(xué)習(xí)資料提供學(xué)習(xí),大家一起交流進(jìn)步)

完整版的迷宮游戲效果如下:

代碼如下:

//創(chuàng)建迷宮
void CreateMaze(int x,int y)
{
//定義4個(gè)方向
int dir[4][2] = { 0, 1, 1, 0, 0, -1, -1, 0 }; //回答錯(cuò)誤
//打亂方向
int j,temp; //temp 臨時(shí)變量
for (int i = 0; i < 4; i++)
{
j = rand() % 4; //0-3 數(shù)組的下標(biāo) //j隨機(jī)之后 j同一次還會(huì)不會(huì)變
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; //把這個(gè)點(diǎn)賦值成路
for (int i = 0; i < 4; i++)
{
if (map[x + 2 * dir[i][0]][y + 2 * dir[i][1]] == WALL) //向上 0 1 //隔壁的一個(gè)
{
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;
}
//畫(huà)出入口和出口
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;
}

這只是里面的一部分代碼,所以你們復(fù)制粘貼也是沒(méi)用的,給你們代碼只是輔導(dǎo)作用,主要是你們要知道編程思想及程序設(shè)計(jì)的思路,希望你們能學(xué)好C/C++學(xué)成C/C++咯。

最后,如果想要全套代碼的話(huà)可以加群:558502932,群內(nèi)有大量學(xué)習(xí)資料提供學(xué)習(xí),大家共同學(xué)習(xí),共同進(jìn)步。

以上所述是小編給大家介紹的使用C/C++語(yǔ)言生成一個(gè)隨機(jī)迷宮游戲,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)我們網(wǎng)站的支持!

上一篇:關(guān)于vector迭代器失效的幾種情況總結(jié)

欄    目:C語(yǔ)言

下一篇:淺談C++對(duì)象的內(nèi)存分布和虛函數(shù)表

本文標(biāo)題:使用C/C++語(yǔ)言生成一個(gè)隨機(jī)迷宮游戲

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/1879.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有