程序設(shè)計(jì)基礎(chǔ) 迷宮游戲計(jì)算機(jī)教學(xué)課件PPT

上傳人:文*** 文檔編號(hào):52973466 上傳時(shí)間:2022-02-09 格式:PPT 頁(yè)數(shù):23 大?。?50KB
收藏 版權(quán)申訴 舉報(bào) 下載
程序設(shè)計(jì)基礎(chǔ) 迷宮游戲計(jì)算機(jī)教學(xué)課件PPT_第1頁(yè)
第1頁(yè) / 共23頁(yè)
程序設(shè)計(jì)基礎(chǔ) 迷宮游戲計(jì)算機(jī)教學(xué)課件PPT_第2頁(yè)
第2頁(yè) / 共23頁(yè)
程序設(shè)計(jì)基礎(chǔ) 迷宮游戲計(jì)算機(jī)教學(xué)課件PPT_第3頁(yè)
第3頁(yè) / 共23頁(yè)

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《程序設(shè)計(jì)基礎(chǔ) 迷宮游戲計(jì)算機(jī)教學(xué)課件PPT》由會(huì)員分享,可在線閱讀,更多相關(guān)《程序設(shè)計(jì)基礎(chǔ) 迷宮游戲計(jì)算機(jī)教學(xué)課件PPT(23頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、1home back first prev next last 19_ 迷宮游戲迷宮游戲2home back first prev next last 這節(jié)課即我們即將學(xué)習(xí)這節(jié)課即我們即將學(xué)習(xí) 迷宮的繪制迷宮的繪制 數(shù)字地圖的使用數(shù)字地圖的使用 路徑的自動(dòng)搜索路徑的自動(dòng)搜索3home back first prev next last 迷宮程序界面如右圖所迷宮程序界面如右圖所示示 點(diǎn)擊點(diǎn)擊“重建地圖重建地圖”,地,地圖被擦除,用戶通過(guò)點(diǎn)圖被擦除,用戶通過(guò)點(diǎn)擊鼠標(biāo)或按著鼠標(biāo)左鍵擊鼠標(biāo)或按著鼠標(biāo)左鍵拖動(dòng)鼠標(biāo)來(lái)繪制地圖拖動(dòng)鼠標(biāo)來(lái)繪制地圖 綠色代表通道,小貓只綠色代表通道,小貓只能在通道上行走,不能能

2、在通道上行走,不能走到白色的區(qū)域上面去走到白色的區(qū)域上面去 點(diǎn)擊點(diǎn)擊“探索迷宮探索迷宮”,小,小貓自動(dòng)在繪制完成的地貓自動(dòng)在繪制完成的地圖上尋找路徑,直到吃圖上尋找路徑,直到吃到魚(yú)或發(fā)現(xiàn)沒(méi)有通到魚(yú)到魚(yú)或發(fā)現(xiàn)沒(méi)有通到魚(yú)的路徑可走為止的路徑可走為止4home back first prev next last 程序中有程序中有5個(gè)角色,分別是小貓湯姆、繪制個(gè)角色,分別是小貓湯姆、繪制通道的綠色方塊、通道的綠色方塊、“重建地圖重建地圖”按鈕、魚(yú)按鈕、魚(yú)和和“探索迷宮探索迷宮”按鈕按鈕5home back first prev next last 地圖繪制原理地圖繪制原理 將屏幕劃出一個(gè)寬將屏幕劃出一

3、個(gè)寬420高高300的區(qū)域,然后將此的區(qū)域,然后將此區(qū)域分為寬區(qū)域分為寬30高高30的小方格。這樣的小方格有的小方格。這樣的小方格有14列,列,10行,共計(jì)行,共計(jì)140個(gè)。個(gè)?!巴ǖ劳ǖ馈苯巧且粋€(gè)角色是一個(gè)寬寬30高高30的綠色方塊。繪制地圖時(shí),判斷鼠標(biāo)的綠色方塊。繪制地圖時(shí),判斷鼠標(biāo)按下時(shí)鼠標(biāo)光標(biāo)所處的位置落于哪個(gè)小方格中,按下時(shí)鼠標(biāo)光標(biāo)所處的位置落于哪個(gè)小方格中,然后將然后將“通道通道”角色移至該方塊的左下角,使角色移至該方塊的左下角,使用用“圖章圖章”方法繪制一個(gè)方格方法繪制一個(gè)方格6home back first prev next last 地圖繪制原理地圖繪制原理 為了易于程序

4、判斷,除了在屏幕上繪制地圖,還要保存為了易于程序判斷,除了在屏幕上繪制地圖,還要保存一幅一幅“數(shù)字地圖數(shù)字地圖”。 建立鏈表建立鏈表map,插入,插入140個(gè)個(gè)0,代表空白地圖。鏈表,代表空白地圖。鏈表map的每一個(gè)元素,代表一個(gè)小方格。元素值為的每一個(gè)元素,代表一個(gè)小方格。元素值為1時(shí),代表時(shí),代表方格為綠色通道。元素值為方格為綠色通道。元素值為0時(shí),代表方格為白色障礙。時(shí),代表方格為白色障礙。7home back first prev next last 地圖繪制原理地圖繪制原理 鏈表鏈表map第第1-14個(gè)元素代表第一行方格,第個(gè)元素代表第一行方格,第15-28個(gè)元素代表第二行方格,依此

5、類推。繪制地圖個(gè)元素代表第二行方格,依此類推。繪制地圖時(shí),除了根據(jù)鼠標(biāo)光標(biāo)位置繪制時(shí),除了根據(jù)鼠標(biāo)光標(biāo)位置繪制“通道通道”外,外,也要將相應(yīng)方格對(duì)應(yīng)的鏈表元素設(shè)置為也要將相應(yīng)方格對(duì)應(yīng)的鏈表元素設(shè)置為1。數(shù)字。數(shù)字地圖如下圖所示。第地圖如下圖所示。第x行行y列方格在鏈表中對(duì)應(yīng)列方格在鏈表中對(duì)應(yīng)的元素是的元素是(x-1)*14+y,比如第,比如第2行行2列方格在鏈表列方格在鏈表中對(duì)應(yīng)的元素是中對(duì)應(yīng)的元素是(2-1)*14+2=16,其值是,其值是0,代表,代表一個(gè)空白的障礙方格一個(gè)空白的障礙方格8home back first prev next last 地圖繪制原理地圖繪制原理 屏幕上的地圖是

6、顯示給人看的,叫屏幕上的地圖是顯示給人看的,叫“視圖視圖” 數(shù)字地圖是程序判斷、運(yùn)行的依據(jù),叫數(shù)字地圖是程序判斷、運(yùn)行的依據(jù),叫“數(shù)據(jù)數(shù)據(jù)”或或“文檔文檔” 如果希望程序運(yùn)行效果和人的期望相同,則數(shù)如果希望程序運(yùn)行效果和人的期望相同,則數(shù)字地圖中數(shù)據(jù)所表達(dá)的含義必須和字地圖中數(shù)據(jù)所表達(dá)的含義必須和“視圖視圖”顯顯示的效果一致示的效果一致9home back first prev next last 地圖繪制原理地圖繪制原理 當(dāng)點(diǎn)擊當(dāng)點(diǎn)擊“重建地圖重建地圖”按鈕后,按鈕后,執(zhí)行右面代碼執(zhí)行右面代碼 作用是將小貓?zhí)剿髅詫m的標(biāo)作用是將小貓?zhí)剿髅詫m的標(biāo)志變量志變量Run設(shè)為設(shè)為0,小貓停止,小貓停止探

7、索,刪除地圖探索,刪除地圖 map 鏈表內(nèi)鏈表內(nèi)容,重新插入容,重新插入140個(gè)個(gè)0,清除,清除界面全部畫(huà)筆繪制內(nèi)容,得界面全部畫(huà)筆繪制內(nèi)容,得到一個(gè)空白的地圖。播放聲到一個(gè)空白的地圖。播放聲音音 Meow 目的是告訴用戶按目的是告訴用戶按鈕已經(jīng)被點(diǎn)中鈕已經(jīng)被點(diǎn)中1516171819202122232425262712345678910111213 0 1 2 3 4 5 6 7 8 9 10 11 12 13987654321011home back first prev next last 地圖繪制原理地圖繪制原理 右面代碼的作右面代碼的作用是繪制地圖用是繪制地圖 當(dāng)按下鼠標(biāo)時(shí),當(dāng)按下鼠標(biāo)

8、時(shí),根據(jù)鼠標(biāo)位置根據(jù)鼠標(biāo)位置計(jì)算應(yīng)繪制哪計(jì)算應(yīng)繪制哪一個(gè)方格(鼠一個(gè)方格(鼠標(biāo)的標(biāo)的x坐標(biāo)坐標(biāo)-鼠標(biāo)鼠標(biāo)的的x坐標(biāo)除以坐標(biāo)除以30的余數(shù))的余數(shù))/30 這這是為了求得鼠是為了求得鼠標(biāo)所在方格的標(biāo)所在方格的整數(shù)列整數(shù)列12home back first prev next last 地圖繪制原理地圖繪制原理 因?yàn)槠聊蛔筮呉驗(yàn)槠聊蛔筮吔缃鐇坐標(biāo)為坐標(biāo)為-240,為使求得列數(shù)為使求得列數(shù)為從左到右自為從左到右自0(第一列標(biāo)(第一列標(biāo)號(hào)為號(hào)為0)開(kāi)始,)開(kāi)始,統(tǒng)一加統(tǒng)一加8 同樣的原因,同樣的原因,計(jì)算鼠標(biāo)所在計(jì)算鼠標(biāo)所在方格行數(shù)時(shí)因方格行數(shù)時(shí)因?yàn)槭髽?biāo)下邊界為鼠標(biāo)下邊界y坐標(biāo)為坐標(biāo)為-180,統(tǒng)一加

9、統(tǒng)一加613home back first prev next last 當(dāng)點(diǎn)擊當(dāng)點(diǎn)擊“探索迷宮探索迷宮”按鈕后,執(zhí)行右面代按鈕后,執(zhí)行右面代碼碼 作用是將作用是將pass鏈表初始鏈表初始化為化為140個(gè)個(gè)0,表示地圖,表示地圖上所有方格都沒(méi)有探索上所有方格都沒(méi)有探索過(guò)過(guò) 然后將然后將 Run 設(shè)置為設(shè)置為1,允許探索迷宮程序運(yùn)行允許探索迷宮程序運(yùn)行 廣播事件廣播事件“探索迷宮探索迷宮”,觸發(fā)探索迷宮程序運(yùn)行觸發(fā)探索迷宮程序運(yùn)行14home back first prev next last 角色角色“魚(yú)魚(yú)”的代碼的代碼 作用是將小魚(yú)移到地圖右上角的方格,即第作用是將小魚(yú)移到地圖右上角的方格,

10、即第10行,第行,第14列的方格,方格的編號(hào)從列的方格,方格的編號(hào)從0開(kāi)始,即行開(kāi)始,即行為為0-9,列為,列為0-1315home back first prev next last 路徑搜索算法路徑搜索算法 變量變量 cat_x,cat_y 用于記錄小貓當(dāng)前所在方格用于記錄小貓當(dāng)前所在方格的位置,的位置,cat_x表示所在列(表示所在列(0-13),),cat_y表示表示所在行(所在行(0-9) LastStep 表示小貓上一步所在的方格,用方格表示小貓上一步所在的方格,用方格在在map列表中的索引表示列表中的索引表示 NextStep是一臨時(shí)變量,表示小貓下一步可能進(jìn)是一臨時(shí)變量,表示小

11、貓下一步可能進(jìn)入的方格,用方格在入的方格,用方格在map列表中的索引表示列表中的索引表示 Direction 代表小貓的前進(jìn)方向,代表小貓的前進(jìn)方向,1-上,上,2-下,下,3-左,左,4-右右16home back first prev next last 路徑搜索算法路徑搜索算法 鏈表鏈表 map 表示地圖表示地圖 鏈表鏈表 pass用于記錄小貓?zhí)剿鬟^(guò)的方格,其結(jié)構(gòu)用于記錄小貓?zhí)剿鬟^(guò)的方格,其結(jié)構(gòu)和和map相同,大小被初始化為相同,大小被初始化為140,每個(gè)元素對(duì),每個(gè)元素對(duì)應(yīng)地圖上的一個(gè)方格應(yīng)地圖上的一個(gè)方格曾經(jīng)走過(guò)的方格對(duì)應(yīng)元素設(shè)為曾經(jīng)走過(guò)的方格對(duì)應(yīng)元素設(shè)為1,一次也沒(méi)有走過(guò)的,一次也

12、沒(méi)有走過(guò)的方格對(duì)應(yīng)元素設(shè)為方格對(duì)應(yīng)元素設(shè)為0 Path代表小貓從起點(diǎn)(左下角方格)為了達(dá)到代表小貓從起點(diǎn)(左下角方格)為了達(dá)到終點(diǎn)(魚(yú)所在右上角方格)探索走過(guò)的路徑,終點(diǎn)(魚(yú)所在右上角方格)探索走過(guò)的路徑,其大小動(dòng)態(tài)變化,小貓每走一步,經(jīng)過(guò)的方格其大小動(dòng)態(tài)變化,小貓每走一步,經(jīng)過(guò)的方格位置就被插入鏈表位置就被插入鏈表Path的頭部(第一個(gè)元素)的頭部(第一個(gè)元素)17home back first prev next last 路徑搜索算法路徑搜索算法 1. 根據(jù)小貓當(dāng)前位置,假設(shè)一個(gè)前進(jìn)方向,比如向上,根據(jù)小貓當(dāng)前位置,假設(shè)一個(gè)前進(jìn)方向,比如向上,計(jì)算計(jì)算NextStep 2. 判斷判斷Ne

13、xtStep進(jìn)入方格如果沒(méi)有超越邊界,且從未探進(jìn)入方格如果沒(méi)有超越邊界,且從未探索過(guò),且不是來(lái)時(shí)剛走過(guò)的方格,則此假設(shè)方向可行,索過(guò),且不是來(lái)時(shí)剛走過(guò)的方格,則此假設(shè)方向可行,小貓進(jìn)入小貓進(jìn)入NextStep所對(duì)應(yīng)方格,將所對(duì)應(yīng)方格,將pass中中NextStep對(duì)應(yīng)元對(duì)應(yīng)元素設(shè)置為素設(shè)置為1,標(biāo)志此方格已經(jīng)走過(guò),將,標(biāo)志此方格已經(jīng)走過(guò),將NextStep添加到添加到Path頭部,路徑向前延伸頭部,路徑向前延伸 3. 如果上述條件不成立,則判斷下一個(gè)方向如果上述條件不成立,則判斷下一個(gè)方向 4. 如果所有方向都不可行,說(shuō)明此路不通。從如果所有方向都不可行,說(shuō)明此路不通。從Path中取中取出上一

14、步走過(guò)的方格,回退到此方格,返回到步驟出上一步走過(guò)的方格,回退到此方格,返回到步驟(1)。如果如果Path中已經(jīng)為空,說(shuō)明已經(jīng)探索過(guò)所有可能達(dá)到的中已經(jīng)為空,說(shuō)明已經(jīng)探索過(guò)所有可能達(dá)到的方格,仍然無(wú)法到達(dá)終點(diǎn)。探索過(guò)程結(jié)束,說(shuō)方格,仍然無(wú)法到達(dá)終點(diǎn)。探索過(guò)程結(jié)束,說(shuō)“無(wú)路可無(wú)路可走,游戲結(jié)束!走,游戲結(jié)束!”18home back first prev next last19543212687101113Path:19home back first prev next last 具體程序?qū)崿F(xiàn)時(shí),先決定前進(jìn)的方向,然后再前具體程序?qū)崿F(xiàn)時(shí),先決定前進(jìn)的方向,然后再前進(jìn),探索初始化及判斷向上一步是否

15、可行的代碼進(jìn),探索初始化及判斷向上一步是否可行的代碼如右如右20home back first prev next last 其他方向的判斷,同向上的判斷方式相同,下面其他方向的判斷,同向上的判斷方式相同,下面是所有方向都走不通后的處理代碼是所有方向都走不通后的處理代碼21home back first prev next last 根據(jù)前面決定的方向,前進(jìn)一步的代碼如下根據(jù)前面決定的方向,前進(jìn)一步的代碼如下22home back first prev next last 編寫坦克大戰(zhàn)游戲編寫坦克大戰(zhàn)游戲 鏈表實(shí)現(xiàn)數(shù)字地圖,用鏈表實(shí)現(xiàn)數(shù)字地圖,用0代表通道,代表通道,1代表磚墻,代表磚墻,2代

16、表草地,代表草地,3代表石墻等等代表石墻等等 自己繪制或上網(wǎng)查找坦克、磚墻、草地、石墻自己繪制或上網(wǎng)查找坦克、磚墻、草地、石墻等圖片,統(tǒng)一大小,作為構(gòu)造地圖的素材等圖片,統(tǒng)一大小,作為構(gòu)造地圖的素材 可開(kāi)發(fā)兩個(gè)程序,一個(gè)是地圖編輯器,專門用可開(kāi)發(fā)兩個(gè)程序,一個(gè)是地圖編輯器,專門用作編輯地圖使用;另一個(gè)是游戲程序,實(shí)現(xiàn)人作編輯地圖使用;另一個(gè)是游戲程序,實(shí)現(xiàn)人機(jī)對(duì)戰(zhàn)機(jī)對(duì)戰(zhàn) 人控制坦克,保衛(wèi)自己的基地,電腦進(jìn)攻,消人控制坦克,保衛(wèi)自己的基地,電腦進(jìn)攻,消滅所有電腦坦克,基地不被損毀則可過(guò)關(guān)滅所有電腦坦克,基地不被損毀則可過(guò)關(guān)23home back first prev next last 這節(jié)課我們學(xué)習(xí)了這節(jié)課我們學(xué)習(xí)了 迷宮的繪制迷宮的繪制 數(shù)字地圖的使用數(shù)字地圖的使用 路徑的自動(dòng)搜索路徑的自動(dòng)搜索

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!