新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 基于FPGA的M2M異構虛擬化系統(三)

        基于FPGA的M2M異構虛擬化系統(三)

        作者: 時間:2018-08-31 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/201808/388221.htm

          4.3.2.應用程序設計與實現

          4.3.2.1.基于MIPS匯編語言的俄羅斯方塊游戲設計

          開發環境:自己編寫的MIPS匯編器AssemblerForRS-232.jar,MIPS匯編語言源文件in.asm,安裝jre或jdk并配置好環境變量的windows XP及以上的操作系統。

          程序流程:

          

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

          主要模塊:

          start函數

          參數:無

          功能:游戲的主體框架,作用類似main函數

          說明:內部調用Tetris、tetris_clr、wait_key、start_enter等函數,構成整個游戲的主體框架。

          Tetris函數

          參數:無

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

          說明:調用各種初始化函數、俄羅斯方塊的生成函數和運動函數、玩家鍵盤控制函數、各種信息顯示函數,實現游戲的所有邏輯。

          ini_boarder函數

          參數:無

          功能:畫俄羅斯方塊運行的左右邊界

          說明:初始化游戲時使用

          set_bottom函數

          參數:無

          功能:畫俄羅斯方塊運行的下邊界

          說明:初始化游戲時使用

          info函數類

          函數類:info_help、info_next、info_fail

          參數:無

          功能:顯示各種信息

          說明:在初始化游戲界面時調用info_help顯示幫助信息;調用info_next在屏幕左上角顯示下一個即將下落的方塊的形狀和顏色,當游戲失敗時調用info_fail提醒玩家。

          check_key函數

          參數:輸出參數$v0和$v1

          功能:檢查是否有鍵按下

          說明:鍵盤無鍵按下時$v0=0;否則$v0=1,$v1=鍵值

          chk_dlt函數

          參數:輸出參數$v0

          功能:檢查并刪除滿行

          說明:檢測每一行是否已擺滿方塊,如果擺滿則將其刪除。返回值$v0為刪除的滿行數。

          detect_collision函數

          參數:輸出參數$v0

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

          說明:如果有沖突則返回$v0=2

          null_loop函數

          參數:輸入參數$a0

          功能:空循環,用于延時

          說明:$a0=0,表示長延時;$a0=1表示短延時

          get_next_seq函數

          參數:輸入參數$a3、輸出參數$v0

          功能:根據當前方塊的形狀,得到下一個方塊的形狀

          說明:輸入$a3當前形狀的序列號,返回$v0下一個方塊的形狀的序列號

          draw_pic函數類

          函數類:pre_draw_pic類、un_pre_draw_pic類、draw_pic類

          參數:輸入參數$a0和$a2

          功能:根據方塊現在的位置和接下來的位置來畫方塊

          說明:輸入參數$a0是當前位置,$a2是方塊將要移動的位置

          4.3.2.2.基于C語言的吃豆子游戲設計

          開發環境:自己編寫的硬件系統模擬器SimulatorForV5.jar,自己編寫的內存填充工具MemoryFilling.jar,自己編寫的硬件內存分配文件memory.bin,Gcc編譯環境,嚴格的簡單的C語言程序源文件user.c,安裝jre或jdk并配置好環境變量的windows XP及以上的操作系統。

          程序流程:

          

          圖 48吃豆子程序流程圖

          主要模塊:

          start_game函數

          原型:void start_game();

          功能:游戲程序的邏輯主函數

          說明:控制packman的運動,兩個怪物的簡單智能移動,檢查游戲的終止條件,判斷鍵盤輸入并做相應的響應

          init_game函數

          原型:void init_game();

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

          說明:每次游戲重新開始時,需要調用該函數進行全局變量的初始化

          check_catch函數

          原型:int check_catch()

          功能:檢測packman是否被怪物抓到

          說明:如果被抓到返回1,否則返回0

          check_collision函數

          原型:int check_collision()

          功能:檢測兩個怪物是否有沖突

          說明:如果有則返回1,否則返回0



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 长治市| 巴南区| 东兴市| 宽城| 濉溪县| 满城县| 龙川县| 诸暨市| 台州市| 海兴县| 华安县| 仁化县| 南雄市| 万山特区| 张家口市| 兖州市| 九寨沟县| 尼玛县| 习水县| 灌阳县| 楚雄市| 通城县| 田林县| 丽水市| 射阳县| 三江| 通渭县| 沙坪坝区| 秭归县| 尼勒克县| 黔西县| 抚松县| 兴安县| 镇江市| 蒙山县| 台南市| 阿拉善右旗| 扎兰屯市| 监利县| 尖扎县| 垣曲县|