




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、奪寶奇兵開發文檔本游戲為連連看類型游戲,老少皆宜,連連看類型游戲有廣泛的群眾基礎。游戲中一改往常選關模式,設計成關卡挑戰模式,玩家總共需要經歷6座城市最終到達目的地并獲取寶物,玩法方面能夠更加的引人入勝。尋找大量寶石做為基本素材,繪制了6類共35種精美寶石圖塊,游戲界面整體風格美觀且統一。游戲基本結構:游戲整體為模式化設計,主要由四個類塊組成,程序整體結構圖如下:_游戲道具類_用戶時間分數類_關卡處理類_連連看類關卡處理類:負責整個游戲的關卡跟流程處理;連連看類:游戲核心算法處理,同時負責游戲圖塊跟畫面的生成跟屏幕輸出;游戲道具類:處理游戲道具跟數量信息功能擴充輔助用戶時間分數類:處理用戶名/
2、事件/分數功能擴充輔助游戲核心算法詳解:注:由于算法是我自己研究出來的,研究過程中沒有參考任何相關資料,可能還有很多不完善的地方,還請諒解!本處主要以圖解為主,如果您對算法還有不明白的地方,請直接參考<<奪寶奇兵>>源代碼中的連連看類具體算法部分在 尋路() 函數中目標:檢測A1是否可以鏈接到B1算法講解圖片步驟:檢測A1到A2是否一路都為空數據真假檢測B1到B2是否一路都為空數據真假真假可以連通不能連通從上往下檢測A1的Y縱向坐標跟B1的相同的Y坐標處是否一路為空(本處A1跟B1的Y坐標都等于2時是可以連通的即A2到B2是可以連通的)繼續檢測下一個Y坐標的值檢測Y坐標
3、是否為最大值真假附加說明:通過上面的步驟圖解,我們很容易可以理解兩個橫向圖塊的連結檢測的原理那么我們如何實現縱向圖塊的連結呢?其實很簡單,請看下圖:對了,算法步驟跟上面的一樣,只是橫縱向的位置變了。同理,以下幾種情況都可以通過這種方式來處理:如何橫縱向都可以判斷呢?思考思考!呵呵,你想出來了嗎?就是先檢測橫向,如果沒有可以連通的圖塊,則檢測縱向,如果都沒有,則表示連通失??!代碼參考:注:本處尋路函數代碼段,只為程序的部分代碼,并不能直接編譯,還有較詳細的注釋,可直接貼到易語言中做為算法理解的參考>- 代碼段開始 -<.版本 2.子程序 尋路, 邏輯型, 公開.參數 上次坐標, 坐標
4、.參數 當前坐標, 坐標.參數 順序路徑坐標, 坐標, 參考 可空 數組, 存放路過的路徑信息.局部變量 循環變量, 整數型.局部變量 縱向循環, 整數型, , "2".局部變量 橫向循環, 整數型, , "2".局部變量 臨時縱向循環, 整數型.局部變量 臨時橫向循環, 整數型.局部變量 連通成功, 邏輯型.局部變量 臨時整數變量, 整數型.局部變量 臨時坐標變量, 坐標.局部變量 連接路徑, 坐標, , "0".局部變量 最優位置, 整數型.如果真 (上次坐標.縱向坐標 0 或 上次坐標.橫向坐標 0 或 當前坐標.縱向坐標 0
5、或 當前坐標.橫向坐標 0 或 上次坐標.縱向坐標 _縱向塊數 2 或 上次坐標.橫向坐標 _橫向塊數 2 或 當前坐標.縱向坐標 _縱向塊數 2 或 當前坐標.橫向坐標 _橫向塊數 2) 返回 (假).如果真結束.如果真 (_數據數組 上次坐標.縱向坐標 上次坐標.橫向坐標.數據內容 _數據數組 當前坐標.縱向坐標 當前坐標.橫向坐標.數據內容) 返回 (假).如果真結束.如果真 (_數據數組 上次坐標.縱向坐標 上次坐標.橫向坐標.數據內容 0 或 _數據數組 當前坐標.縱向坐標 當前坐標.橫向坐標.數據內容 0) 返回 (假).如果真結束重定義數組 (連接路徑, 假, 0)' &
6、lt;< 縱向路徑連通性檢測 >>最優位置 0.計次循環首 (_縱向塊數 2, 循環變量) ' 先假定路徑可以連通 連通成功 真 ' << 測試路徑連通性 >> ' 判斷上次坐標的縱向坐標到循環變量是否能夠連通 ' 即判斷 坐標(上次坐標.橫向坐標,上次坐標.縱向坐標) 與 坐標(上次坐標.橫向坐標,循環變量) 是否能夠連通 .變量循環首 (循環變量, 上次坐標.縱向坐標, 選擇 (循環變量 上次坐標.縱向坐標, -1, 1), 縱向循環 1) .如果真 (_數據數組 縱向循環 1 上次坐標.橫向坐標.數據內容 0 且
7、縱向循環 1 上次坐標.縱向坐標) 連通成功 假 跳出循環 () .如果真結束 .變量循環尾 () ' 判斷當前坐標的縱向坐標到循環變量是否能夠連通 ' 即判斷 坐標(當前坐標.橫向坐標,當前坐標.縱向坐標) 與 坐標(當前坐標.橫向坐標,循環變量) 是否能夠連通 .變量循環首 (循環變量, 當前坐標.縱向坐標, 選擇 (循環變量 當前坐標.縱向坐標, -1, 1), 縱向循環 2) .如果真 (_數據數組 縱向循環 2 當前坐標.橫向坐標.數據內容 0 且 縱向循環 2 當前坐標.縱向坐標) 連通成功 假 跳出循環 () .如果真結束 .變量循環尾 () ' 判斷兩個
8、坐標的橫向坐標與縱向坐標為循環變量兩點是否能夠連通 ' 即判斷 坐標(上次坐標.橫向坐標,循環變量) 與 坐標(當前坐標.橫向坐標,循環變量) 是否能夠連通 .變量循環首 (上次坐標.橫向坐標, 當前坐標.橫向坐標, 選擇 (上次坐標.橫向坐標 當前坐標.橫向坐標, -1, 1), 臨時橫向循環) .如果真 (_數據數組 循環變量 臨時橫向循環.數據內容 0 且 臨時橫向循環 上次坐標.橫向坐標 且 臨時橫向循環 當前坐標.橫向坐標) 連通成功 假 跳出循環 () .如果真結束 .變量循環尾 () .如果真 (連通成功) .如果 (最優位置 0) 最優位置 循環變量 .否則 最優位置
9、選擇 (取絕對值 (上次坐標.縱向坐標 循環變量) 取絕對值 (當前坐標.縱向坐標 循環變量) 取絕對值 (上次坐標.縱向坐標 最優位置) 取絕對值 (當前坐標.縱向坐標 最優位置), 循環變量, 最優位置) .如果結束 .如果真結束.計次循環尾 ().如果真 (最優位置 0) ' << 組織正確順序的路徑信息 >> ' 先加入初始節點坐標 加入成員 (連接路徑, 上次坐標) .如果真 (上次坐標.橫向坐標 當前坐標.橫向坐標) ' 判斷第二個節點坐標 .如果真 (取絕對值 (最優位置 上次坐標.縱向坐標) 0) 臨時坐標變量.橫向坐標 上次坐標
10、.橫向坐標 臨時坐標變量.縱向坐標 最優位置 加入成員 (連接路徑, 臨時坐標變量) .如果真結束 ' 判斷第三個節點坐標 .如果真 (取絕對值 (最優位置 當前坐標.縱向坐標) 0) 臨時坐標變量.橫向坐標 當前坐標.橫向坐標 臨時坐標變量.縱向坐標 最優位置 加入成員 (連接路徑, 臨時坐標變量) .如果真結束 .如果真結束 ' 最后加入結尾點坐標 加入成員 (連接路徑, 當前坐標) 順序路徑坐標 連接路徑 返回 (真).如果真結束' << 橫向路徑連通性檢測 >>最優位置 0.計次循環首 (_橫向塊數 2, 循環變量) ' 先假定路
11、徑可以連通 連通成功 真 ' << 測試路徑連通性 >> ' 判斷上次坐標的縱向坐標到循環變量是否能夠連通 ' 即判斷 坐標(上次坐標.橫向坐標,上次坐標.縱向坐標) 與 坐標(上次坐標.橫向坐標,循環變量) 是否能夠連通 .變量循環首 (循環變量, 上次坐標.橫向坐標, 選擇 (循環變量 上次坐標.橫向坐標, -1, 1), 橫向循環 1) .如果真 (_數據數組 上次坐標.縱向坐標 橫向循環 1.數據內容 0 且 橫向循環 1 上次坐標.橫向坐標) 連通成功 假 .如果真結束 .變量循環尾 () ' 判斷當前坐標的縱向坐標到循環變量是
12、否能夠連通 ' 即判斷 坐標(當前坐標.橫向坐標,當前坐標.縱向坐標) 與 坐標(當前坐標.橫向坐標,循環變量) 是否能夠連通 .變量循環首 (循環變量, 當前坐標.橫向坐標, 選擇 (循環變量 當前坐標.橫向坐標, -1, 1), 橫向循環 2) .如果真 (_數據數組 當前坐標.縱向坐標 橫向循環 2.數據內容 0 且 橫向循環 2 當前坐標.橫向坐標) 連通成功 假 .如果真結束 .變量循環尾 () ' 判斷兩個坐標的橫向坐標與縱向坐標為循環變量兩點是否能夠連通 ' 即判斷 坐標(上次坐標.橫向坐標,循環變量) 與 坐標(當前坐標.橫向坐標,循環變量) 是否能夠連
13、通 .變量循環首 (上次坐標.縱向坐標, 當前坐標.縱向坐標, 選擇 (上次坐標.縱向坐標 當前坐標.縱向坐標, -1, 1), 臨時縱向循環) .如果真 (_數據數組 臨時縱向循環 循環變量.數據內容 0 且 臨時縱向循環 上次坐標.縱向坐標 且 臨時縱向循環 當前坐標.縱向坐標) 連通成功 假 .如果真結束 .變量循環尾 () ' 檢測失敗便執行下次循環 .如果真 (連通成功 假) 到循環尾 () .如果真結束 .如果真 (連通成功) .如果 (最優位置 0) 最優位置 循環變量 .否則 最優位置 選擇 (取絕對值 (上次坐標.橫向坐標 循環變量) 取絕對值 (當前坐標.橫向坐標
14、循環變量) 取絕對值 (上次坐標.橫向坐標 最優位置) 取絕對值 (當前坐標.橫向坐標 最優位置), 循環變量, 最優位置) .如果結束 .如果真結束.計次循環尾 ().如果真 (最優位置 0) ' << 組織正確順序的路徑信息 >> ' 先加入初始節點坐標 加入成員 (連接路徑, 上次坐標) .如果真 (上次坐標.縱向坐標 當前坐標.縱向坐標) ' 判斷第二個節點坐標 .如果真 (取絕對值 (最優位置 上次坐標.橫向坐標) 0) 臨時坐標變量.縱向坐標 上次坐標.縱向坐標 臨時坐標變量.橫向坐標 最優位置 加入成員 (連接路徑, 臨時坐標變量) .如果真結束 ' 判斷第三個節點坐標 .如果真 (取絕對值 (最優位置 當前坐標.橫向坐標) 0) 臨時坐標變量.縱向坐標 當前坐標.縱向坐標 臨時坐標變量.橫向坐標 最優位置 加入成員 (連接路徑, 臨時坐標變量) .如果真結束 .如果真結束 ' 最后加入結尾點坐標 加入成員 (連接路徑, 當前坐標) 順序路徑坐標 連接路徑 返回 (真).如果真結束返回 (假)>- 代碼段結束 -<游戲調用素材:寶石圖塊合
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025學校教學樓裝修工程合同書范本
- 模檢具制造合同協議
- 員工工作協議書模板
- 2025室內設計合同協議范本
- 咨詢服務合作合同協議
- 快遞柜合作協議合同
- 商務營運車租賃合同協議
- 正規日化廠轉讓合同協議
- 2025年的船舶買賣合同范本
- 正規打架調解協議書范本
- 直播傭金直播合同帶貨
- 點凸焊操作工藝規程
- 跳頻通信系統課件
- 兼職駕駛員審批表
- 科學知識點(知識清單)五年級上冊科學粵教版
- 2023初一語文現代文閱讀理解練習:非連續性文本閱讀《人工智能》
- 初中英語譯林版單詞表全冊詞匯表打印背誦版(全6冊)
- 沖擊成孔灌注樁施工工藝和常見問題的處理方法
- 杭州歷史文化漫游知到章節答案智慧樹2023年浙江大學
- 南京市用人單位退工停保登記花名冊
- (完整word版)扣字詞匯124
評論
0/150
提交評論