<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的M2M異構(gòu)虛擬化系統(tǒng)(三)

          基于FPGA的M2M異構(gòu)虛擬化系統(tǒng)(三)

          作者: 時(shí)間:2018-08-31 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201808/388221.htm

            4.3.2.應(yīng)用程序設(shè)計(jì)與實(shí)現(xiàn)

            4.3.2.1.基于MIPS匯編語(yǔ)言的俄羅斯方塊游戲設(shè)計(jì)

            開(kāi)發(fā)環(huán)境:自己編寫(xiě)的MIPS匯編器AssemblerForRS-232.jar,MIPS匯編語(yǔ)言源文件in.asm,安裝jre或jdk并配置好環(huán)境變量的windows XP及以上的操作系統(tǒng)。

            程序流程:

            

            圖 47 俄羅斯方塊程序流程圖

            主要模塊:

            start函數(shù)

            參數(shù):無(wú)

            功能:游戲的主體框架,作用類(lèi)似main函數(shù)

            說(shuō)明:內(nèi)部調(diào)用Tetris、tetris_clr、wait_key、start_enter等函數(shù),構(gòu)成整個(gè)游戲的主體框架。

            Tetris函數(shù)

            參數(shù):無(wú)

            功能:游戲的邏輯控制主體

            說(shuō)明:調(diào)用各種初始化函數(shù)、俄羅斯方塊的生成函數(shù)和運(yùn)動(dòng)函數(shù)、玩家鍵盤(pán)控制函數(shù)、各種信息顯示函數(shù),實(shí)現(xiàn)游戲的所有邏輯。

            ini_boarder函數(shù)

            參數(shù):無(wú)

            功能:畫(huà)俄羅斯方塊運(yùn)行的左右邊界

            說(shuō)明:初始化游戲時(shí)使用

            set_bottom函數(shù)

            參數(shù):無(wú)

            功能:畫(huà)俄羅斯方塊運(yùn)行的下邊界

            說(shuō)明:初始化游戲時(shí)使用

            info函數(shù)類(lèi)

            函數(shù)類(lèi):info_help、info_next、info_fail

            參數(shù):無(wú)

            功能:顯示各種信息

            說(shuō)明:在初始化游戲界面時(shí)調(diào)用info_help顯示幫助信息;調(diào)用info_next在屏幕左上角顯示下一個(gè)即將下落的方塊的形狀和顏色,當(dāng)游戲失敗時(shí)調(diào)用info_fail提醒玩家。

            check_key函數(shù)

            參數(shù):輸出參數(shù)$v0和$v1

            功能:檢查是否有鍵按下

            說(shuō)明:鍵盤(pán)無(wú)鍵按下時(shí)$v0=0;否則$v0=1,$v1=鍵值

            chk_dlt函數(shù)

            參數(shù):輸出參數(shù)$v0

            功能:檢查并刪除滿(mǎn)行

            說(shuō)明:檢測(cè)每一行是否已擺滿(mǎn)方塊,如果擺滿(mǎn)則將其刪除。返回值$v0為刪除的滿(mǎn)行數(shù)。

            detect_collision函數(shù)

            參數(shù):輸出參數(shù)$v0

            功能:檢查是否有方塊沖突

            說(shuō)明:如果有沖突則返回$v0=2

            null_loop函數(shù)

            參數(shù):輸入?yún)?shù)$a0

            功能:空循環(huán),用于延時(shí)

            說(shuō)明:$a0=0,表示長(zhǎng)延時(shí);$a0=1表示短延時(shí)

            get_next_seq函數(shù)

            參數(shù):輸入?yún)?shù)$a3、輸出參數(shù)$v0

            功能:根據(jù)當(dāng)前方塊的形狀,得到下一個(gè)方塊的形狀

            說(shuō)明:輸入$a3當(dāng)前形狀的序列號(hào),返回$v0下一個(gè)方塊的形狀的序列號(hào)

            draw_pic函數(shù)類(lèi)

            函數(shù)類(lèi):pre_draw_pic類(lèi)、un_pre_draw_pic類(lèi)、draw_pic類(lèi)

            參數(shù):輸入?yún)?shù)$a0和$a2

            功能:根據(jù)方塊現(xiàn)在的位置和接下來(lái)的位置來(lái)畫(huà)方塊

            說(shuō)明:輸入?yún)?shù)$a0是當(dāng)前位置,$a2是方塊將要移動(dòng)的位置

            4.3.2.2.基于C語(yǔ)言的吃豆子游戲設(shè)計(jì)

            開(kāi)發(fā)環(huán)境:自己編寫(xiě)的硬件系統(tǒng)模擬器SimulatorForV5.jar,自己編寫(xiě)的內(nèi)存填充工具M(jìn)emoryFilling.jar,自己編寫(xiě)的硬件內(nèi)存分配文件memory.bin,Gcc編譯環(huán)境,嚴(yán)格的簡(jiǎn)單的C語(yǔ)言程序源文件user.c,安裝jre或jdk并配置好環(huán)境變量的windows XP及以上的操作系統(tǒng)。

            程序流程:

            

            圖 48吃豆子程序流程圖

            主要模塊:

            start_game函數(shù)

            原型:void start_game();

            功能:游戲程序的邏輯主函數(shù)

            說(shuō)明:控制packman的運(yùn)動(dòng),兩個(gè)怪物的簡(jiǎn)單智能移動(dòng),檢查游戲的終止條件,判斷鍵盤(pán)輸入并做相應(yīng)的響應(yīng)

            init_game函數(shù)

            原型:void init_game();

            功能:初始化游戲的全局變量

            說(shuō)明:每次游戲重新開(kāi)始時(shí),需要調(diào)用該函數(shù)進(jìn)行全局變量的初始化

            check_catch函數(shù)

            原型:int check_catch()

            功能:檢測(cè)packman是否被怪物抓到

            說(shuō)明:如果被抓到返回1,否則返回0

            check_collision函數(shù)

            原型:int check_collision()

            功能:檢測(cè)兩個(gè)怪物是否有沖突

            說(shuō)明:如果有則返回1,否則返回0



          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();