青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

聚星亭

吾笨笨且懶散兮 急須改之而奮進(jìn)
posts - 74, comments - 166, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
            到今天,函數(shù)學(xué)完了,數(shù)據(jù)也講到多維數(shù)組了,老師讓利用學(xué)到的東西,寫一個走迷宮的程序。
在這里記錄一下:
我要走的迷宮圖如下:
            

      OK,開始定義迷宮地圖數(shù)組:
/************************************************************************/
// 迷宮地圖數(shù)據(jù)
// 0表示墻
// 1表示可以行走的路
// 2表示已經(jīng)走過的路
// 3表示返回的路
/*
***********************************************************************/
int g_MazeMapData[13][13= {
    {
0000000000000},
    {
0111001111011},
    {
0101100001010},
    {
0100111111010},
    {
0111010010010},
    {
0101010111010},
    {
0101110100010},
    {
0111010101110},
    {
0010001111010},
    {
0010001000010},
    {
0110111111010},
    {
0101100001110},
    {
0100000000000}
};

            相關(guān)的宏定義及函數(shù)聲明:
//////////////////////////////////////////////////////////////////////////
#define IN_POS_X    1  // 入口點X坐標(biāo)
#define IN_POS_Y    12   // 入口點Y坐標(biāo)
#define OUT_POS_X   12   // 出口點X坐標(biāo)
#define OUT_POS_Y   1  // 出口點Y坐標(biāo)

#define UNKNOWN     1   // 從來沒走過的路
#define PASS        2   // 經(jīng)過的標(biāo)記
#define BACK        3   // 返回的標(biāo)記


#define GO          0   // 前進(jìn)
#define COMEBACK    1   // 后退
//////////////////////////////////////////////////////////////////////////
extern int g_MazeMapData[13][13];// 迷宮地圖數(shù)據(jù)
extern int g_nCurPosX; // 當(dāng)前的X坐標(biāo)
extern int g_nCurPosY; // 當(dāng)前的Y坐標(biāo)

//////////////////////////////////////////////////////////////////////////
int Start(); // 找到出口了, 返回1, 否則返回0, 如果程序異常中斷了,返回-1
int MoveTo(int nFlag); // 具體走路的函數(shù)
            先初始化當(dāng)前坐標(biāo)到入口坐標(biāo):
int g_nCurPosX = IN_POS_X; // 當(dāng)前的X坐標(biāo)
int g_nCurPosY = IN_POS_Y; // 當(dāng)前的Y坐標(biāo)

   
            整體流程上,如果當(dāng)前的坐標(biāo)等于出口的坐標(biāo),那就可以確定已經(jīng)找到出口了,如果遇到死角,則原路返回到上一個岔口,走另一條路,如果退回到迷宮入口的坐標(biāo),那就認(rèn)為沒有找到出口……

/************************************************************************/
// 開始走迷宮
// 如果找到出口了,返回1,否則返回0
// 如果程序異常中斷了,返回-1
/*
***********************************************************************/
int Start()
{
    
while (1)
    {
        
// 開始走路
        if (MoveTo(GO) == 0)
        {
            MoveTo(COMEBACK);
        }

        // 不停的刷新窗口,模擬動態(tài)走路效果
        
for(int i=0; i<=OUT_POS_X; i++)
        {
            
for(int j = 0; j <= IN_POS_Y; j++)
            {
                printf(
"%d ", g_MazeMapData[i][j]);
            }
            printf(
"\r\n");
        }

        Sleep(
500);

        system(
"cls");

        
// 如果當(dāng)前的坐標(biāo)是出口坐標(biāo)表示找到出口了
        if (g_nCurPosX == OUT_POS_X && g_nCurPosY == OUT_POS_Y)
        {
            
return 1;
        }

        
// 如果又退回入口位置了,表示沒有找到出口
        if (g_nCurPosX == IN_POS_X && g_nCurPosY == IN_POS_Y)
        {
            
return 0;
        }
    }

    
return -1;
}

         現(xiàn)在開始寫具體的走路函數(shù)了,重點有兩點,首先是遇到岔路得優(yōu)先選擇,再就是如果原路退回。

關(guān)于第一個問題,比較容易解決,我們寫if判斷的時候,按照 上、右、下、左的順序?qū)懀@樣它就可以優(yōu)先選擇方向了。

對于第二個問題,我們可以給函數(shù)加個參數(shù),來表明是前進(jìn)還是后退。

代碼如下:

/************************************************************************/
// 按照 上、右、下、左的順序?qū)ぢ?br>// 參數(shù)含義:
//     nFlag: GO 表示前進(jìn),COMEBACK表示返回
// 返 回 值:
//     1 : 向上走,2: 向右走, 3: 向下走, 4: 向左走, 0:異常(出地圖了,不移動)
/*
***********************************************************************/
int MoveTo(int nFlag)
{
    
if(nFlag == 0)
    {
        
// 上
        if (g_MazeMapData[g_nCurPosX][g_nCurPosY-1== UNKNOWN)
        {
            g_MazeMapData[g_nCurPosX][g_nCurPosY] 
= PASS;
            g_nCurPosY
--;
            
return 1;
        }

        
// 右
        if (g_MazeMapData[g_nCurPosX+1][g_nCurPosY] == UNKNOWN)
        {
            g_MazeMapData[g_nCurPosX][g_nCurPosY] 
= PASS;
            g_nCurPosX
++;
            
return 2;
        }

        
// 下
        if (g_MazeMapData[g_nCurPosX][g_nCurPosY+1== UNKNOWN)
        {
            g_MazeMapData[g_nCurPosX][g_nCurPosY] 
= PASS;
            g_nCurPosY
++;
            
return 3;
        }

        
// 左
        if (g_MazeMapData[g_nCurPosX-1][g_nCurPosY] == UNKNOWN)
        {
            g_MazeMapData[g_nCurPosX][g_nCurPosY] 
= PASS;
            g_nCurPosX
--;
            
return 4;
        }
    }
    
else
    {
        
// 上
        if (g_MazeMapData[g_nCurPosX][g_nCurPosY-1== PASS)
        {
            g_MazeMapData[g_nCurPosX][g_nCurPosY] 
= BACK;
            g_nCurPosY
--;
            
return 1;
        }

        
// 右
        if (g_MazeMapData[g_nCurPosX+1][g_nCurPosY] == PASS)
        {
            g_MazeMapData[g_nCurPosX][g_nCurPosY] 
= BACK;
            g_nCurPosX
++;
            
return 2;
        }

        
// 下
        if (g_MazeMapData[g_nCurPosX][g_nCurPosY+1== PASS)
        {
            g_MazeMapData[g_nCurPosX][g_nCurPosY] 
= BACK;
            g_nCurPosY
++;
            
return 3;
        }
        
        
// 左
        if (g_MazeMapData[g_nCurPosX-1][g_nCurPosY] == PASS)
        {
            g_MazeMapData[g_nCurPosX][g_nCurPosY] 
= BACK;
            g_nCurPosX
--;
            
return 4;
        }
    }

    
return 0;
}

            現(xiàn)在貌似還有一個問題,就是,在入口點的時候,我們需要它往左走,按照我們的優(yōu)先級,是最后向左移動,我們的入口在最右邊……

            不過這個也不是問題,因為我們的迷宮周圍是用圍墻圍起來的,所以,向右就是墻,不會出現(xiàn)左邊進(jìn),迷宮右側(cè)出來的情況,好,先瞧瞧效果……


Feedback

# re: 寫了個很笨的走迷宮(效率很差……)  回復(fù)  更多評論   

2009-12-20 02:59 by 你健哥
你個小菜鳥,寫的太菜,花錢秀腿

# re: 寫了個很笨的走迷宮(效率很差……)  回復(fù)  更多評論   

2009-12-23 08:07 by 呵呵
兄弟 好好學(xué),冬至問候聲,現(xiàn)在天氣比較冷,多注意身體.
-------廈門的哥們

# re: 寫了個很笨的走迷宮(效率很差……)  回復(fù)  更多評論   

2009-12-23 16:14 by besterChen
@呵呵

恩,謝謝,你也多保重哈
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲国产日日夜夜| 久久嫩草精品久久久精品一| 亚洲第一色中文字幕| 美腿丝袜亚洲色图| 亚洲另类自拍| 亚洲一级黄色片| 国产喷白浆一区二区三区| 久久免费视频在线观看| 久久亚洲影院| 亚洲字幕一区二区| 欧美一区深夜视频| 亚洲精品社区| 午夜日韩在线| 亚洲免费大片| 亚洲欧美在线网| 亚洲精品在线视频| 亚洲一区在线观看免费观看电影高清| 国产欧美日韩中文字幕在线| 欧美岛国在线观看| 国产精品高潮在线| 欧美+亚洲+精品+三区| 欧美日韩中文字幕在线| 久久久久久久一区二区三区| 久久伊人一区二区| 亚洲在线成人精品| 久久中文字幕一区二区三区| 亚洲在线黄色| 欧美第一黄色网| 欧美一级淫片播放口| 欧美超级免费视 在线| 久久精品道一区二区三区| 欧美激情综合亚洲一二区| 久久久久国产免费免费| 国产精品高清网站| 欧美激情综合| 影音先锋另类| 香蕉免费一区二区三区在线观看| 欧美mv日韩mv亚洲| 欧美一区二区三区视频在线 | 免费在线一区二区| 久久九九国产精品怡红院| 欧美日韩一区在线播放| 欧美va亚洲va国产综合| 国产亚洲人成a一在线v站 | 亚洲一区二区三区高清| 日韩视频免费在线观看| 久久精品一区二区三区四区| 亚洲欧美日韩中文在线制服| 欧美精品尤物在线| 欧美jjzz| 亚洲福利视频一区| 久久九九精品99国产精品| 欧美一区二区三区另类 | 久久婷婷av| 玖玖综合伊人| 国内精品久久久久久| 一区二区三区视频在线看| 日韩视频中午一区| 欧美黄色日本| 亚洲精品少妇30p| 在线亚洲成人| 国产精品第一区| 一区二区三区久久久| 午夜精品一区二区三区在线播放| 欧美日韩日本网| 正在播放日韩| 欧美一区二区视频在线观看| 国产精品久久久久免费a∨大胸| 一本色道久久综合亚洲精品高清 | 日韩午夜剧场| 欧美日韩午夜精品| 一区二区三区免费网站| 亚洲一区中文字幕在线观看| 国产精品久久国产精品99gif| 亚洲午夜伦理| 久久久噜噜噜| 91久久午夜| 欧美涩涩网站| 性欧美大战久久久久久久免费观看| 欧美一区二区三区日韩| 黄色亚洲大片免费在线观看| 久久资源av| 日韩午夜av| 久久久精彩视频| 亚洲福利视频网站| 欧美色精品在线视频| 亚洲自拍偷拍一区| 美女亚洲精品| 亚洲小视频在线| 国产一区二区三区在线观看免费视频 | 亚洲电影免费观看高清完整版在线 | 在线观看日产精品| 欧美区视频在线观看| 亚洲欧美成人| 亚洲国产美女精品久久久久∴| 亚洲无人区一区| 狠狠久久婷婷| 欧美午夜电影在线观看| 久久久精品tv| 夜色激情一区二区| 免费成人av| 亚洲一区二区三区中文字幕在线 | 亚洲三级电影全部在线观看高清| 国产精品福利片| 美女国内精品自产拍在线播放| 正在播放亚洲一区| 欧美成人免费网| 久久激情中文| 亚洲视频免费| 亚洲福利在线观看| 国产免费一区二区三区香蕉精| 免费久久精品视频| 欧美一级视频| 亚洲特级毛片| 亚洲激情专区| 欧美刺激午夜性久久久久久久| 欧美在线free| 亚洲在线观看视频| 99re热精品| 在线看片一区| 激情综合在线| 国产视频久久久久久久| 国产精品成人一区二区三区吃奶| 麻豆精品视频在线观看视频| 欧美一区二区三区婷婷月色| 夜夜爽www精品| 亚洲精品黄色| 亚洲国产精品一区制服丝袜| 久久在线视频| 久久免费精品视频| 久久久久一区二区三区四区| 亚洲欧美另类国产| 亚洲少妇在线| 亚洲天堂偷拍| 亚洲一区二区在线| 亚洲一区在线观看免费观看电影高清| 亚洲欧洲日本mm| 亚洲精品久久| 亚洲精品日本| 99精品99| 国产精品99久久久久久有的能看| 99精品国产热久久91蜜凸| 亚洲精品乱码久久久久久久久| 亚洲第一在线视频| 亚洲国产日韩欧美在线动漫| 亚洲黄色大片| 99re66热这里只有精品3直播| 日韩视频在线观看免费| 一区二区三区日韩欧美精品| 亚洲午夜精品一区二区| 亚洲欧美成人网| 久久精品一区四区| 欧美大胆成人| 亚洲美女av黄| 亚洲一区二区少妇| 久久av一区二区三区漫画| 久久久久久久综合日本| 免费亚洲视频| 国产精品草莓在线免费观看| 国产日韩欧美一二三区| 尤物99国产成人精品视频| 亚洲经典视频在线观看| 在线视频免费在线观看一区二区| 亚洲欧美日韩在线观看a三区| 久久激情网站| 亚洲黄色成人网| 亚洲尤物在线| 亚洲人精品午夜| 亚洲一区二区四区| 久久综合精品国产一区二区三区| 欧美精品aa| 国产亚洲欧美色| 91久久久久久国产精品| 亚洲欧美久久久久一区二区三区| 久久综合激情| 亚洲免费黄色| 性18欧美另类| 牛夜精品久久久久久久99黑人| 欧美日韩国产综合久久| 国产欧美日韩麻豆91| 亚洲人成在线观看| 久久激情视频久久| 91久久国产精品91久久性色| 亚洲一二三四区| 你懂的视频一区二区| 欧美色精品在线视频| 红桃视频一区| 亚洲欧美另类久久久精品2019| 欧美高潮视频| 小辣椒精品导航| 欧美久久久久久| 一区二区三区在线观看国产| 亚洲一区亚洲| 亚洲黄色一区二区三区| 久久精品国产亚洲一区二区三区| 欧美日韩一区在线观看视频| 亚洲激情综合| 欧美18av| 久久免费高清视频| 狠狠色综合播放一区二区|