• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      C語言在游戲程序設(shè)計(jì)中的應(yīng)用與研究

      2018-12-18 11:09:38海南大學(xué)周宇揚(yáng)
      電子世界 2018年23期
      關(guān)鍵詞:程序開發(fā)數(shù)據(jù)類型鏈表

      海南大學(xué) 周宇揚(yáng)

      引言:隨著TD-LTE移動(dòng)通信、智能手機(jī)等軟硬件技術(shù)的發(fā)展,越來越多的益智型小程序誕生,大大的促進(jìn)了人們的娛樂生活。C語言作為一種面向過程的程序開發(fā)語言,擁有數(shù)據(jù)、指針、結(jié)構(gòu)體等多種數(shù)據(jù)類型,運(yùn)行速度非???,可移植性強(qiáng),編制游戲程序具有先天性優(yōu)勢,具有重要的作用和意義。本文基于筆者的研究和分析,首先描述C語言在游戲程序開發(fā)中的優(yōu)勢,然后以經(jīng)典益智游戲俄羅斯方塊為實(shí)例,設(shè)計(jì)了C語言數(shù)據(jù)、結(jié)構(gòu)體和鏈表,為游戲程序開發(fā)提供參考。

      1.C語言在游戲程序中開發(fā)優(yōu)勢

      C語言作為一種應(yīng)用程序開發(fā)語言,擁有豐富的數(shù)據(jù)結(jié)構(gòu)類型和運(yùn)算符,并且開創(chuàng)性的提出了指針類型,實(shí)現(xiàn)計(jì)算機(jī)物理地址的運(yùn)算,進(jìn)行位操作,兼具高級(jí)程序語言和低級(jí)程序語言的優(yōu)點(diǎn),可以變現(xiàn)系統(tǒng)軟件,也可以開發(fā)應(yīng)用軟件,比如Unix操作系統(tǒng)、Linux操作系統(tǒng)、游戲程序等,利用圖形功能支持各類尺寸的顯示器和驅(qū)動(dòng)器,計(jì)算功能和邏輯判斷能力非常強(qiáng)。C語言在游戲程序開發(fā)中具有很強(qiáng)的優(yōu)勢,如下所述:

      (1)面向過程程序開發(fā)。C語言是一種面向過程的語音,程序員可以使用過程或函數(shù)執(zhí)行任務(wù),面向過程語言與人們的日常思考一直,易于學(xué)習(xí)和掌握,能夠面向過程的語音開發(fā)程序,編寫算法實(shí)現(xiàn)程序功能。

      (2)擁有許多庫文件。C語言提供了大量的函數(shù)程序,包括系統(tǒng)自動(dòng)生成的函數(shù)和程序語言編寫的函數(shù),C語言編譯器自帶頭文件,這些頭文件中的函數(shù)都是已經(jīng)編寫完成的基本功能,可以直接調(diào)用和使用。

      (3)編譯運(yùn)行速度非常快。C語言編譯器產(chǎn)生的機(jī)器代碼運(yùn)行速度非常多,C編譯器編譯千行代碼僅需要兩秒,同時(shí)完成優(yōu)化代碼提高執(zhí)行速度功能。

      2.C語言在游戲程序設(shè)計(jì)中的具體應(yīng)用

      俄羅斯方塊是一款風(fēng)靡全球的智能手機(jī)應(yīng)用程序,利用移動(dòng)、旋轉(zhuǎn)和擺放等功能輸出各種方塊,然后將其排列成一行或多行消除得分,俄羅斯方塊看似簡單卻變化無窮,簡單易學(xué)和益智,但是熟練掌握應(yīng)用程序操作卻需要開動(dòng)腦筋,因此目前的普及程度非常高。本文基于C語言開發(fā)俄羅斯方塊游戲程序,其主要功能包括游戲方塊預(yù)覽、游戲方框控制、游戲分?jǐn)?shù)統(tǒng)計(jì)和游戲幫助功能。

      游戲程序初始化運(yùn)行開始之后,游戲方塊預(yù)覽區(qū)域出現(xiàn)一個(gè)游戲方塊,有利于玩家控制游戲策略。俄羅斯方塊有七種不同的方塊組成,因此具有七種策略,游戲方塊生成是隨機(jī)的。游戲方塊控制能夠可以實(shí)現(xiàn)方塊的自由下落、左移、快速下移、右移、旋轉(zhuǎn)和消除行。游戲分?jǐn)?shù)控制可以實(shí)現(xiàn)分?jǐn)?shù)增加,消除一行增加100分,也可以自動(dòng)化返回游戲初始界面。游戲幫助功能可以實(shí)現(xiàn)游戲操作提醒功能。俄羅斯方塊的主要算法流程如圖1所示。

      圖1 俄羅斯方塊結(jié)構(gòu)化流程圖

      俄羅斯方塊采用C語言開發(fā),關(guān)鍵功能是實(shí)現(xiàn)數(shù)據(jù)類型的設(shè)計(jì),其余操作實(shí)現(xiàn)簡單,數(shù)據(jù)類型包括數(shù)組、結(jié)構(gòu)體和鏈表。

      (1)數(shù)組設(shè)計(jì)

      C語言數(shù)組可以把具有相同類型的數(shù)據(jù)有序組織在一起。俄羅斯方塊使用了三個(gè)關(guān)鍵數(shù)組,分別是俄羅斯方塊的四個(gè)變換樣式、方塊顏色、玩家游戲得分。

      (2)結(jié)構(gòu)體設(shè)計(jì)

      俄羅斯方塊使用了兩個(gè)結(jié)構(gòu)體,分別是方塊結(jié)構(gòu)體Struct Block和Struct BlockInfo,Struct Block可以定義俄羅斯方塊的狀態(tài)和顏色,提示給出下一方塊的信息;Struct BlockInfo能夠定義俄羅斯方塊的移動(dòng)方向和移動(dòng)距離。

      Struct Block{ unsigned int rockShapeBits;//描述方塊的形狀,8位字節(jié),每4位表示一行

      Int nextRockIndex;//表示下一個(gè)方塊的數(shù)組下表}Block Type;

      Struct BlockInfo { int left; int right; int translate; int drop; int speeddrop} BlockInfo Type; //描述方塊方向

      (3)鏈表設(shè)計(jì)

      C語言最具關(guān)鍵的程序數(shù)據(jù)類型就是指針,利用指針可以設(shè)計(jì)鏈表結(jié)構(gòu),鏈表結(jié)構(gòu)可以克服數(shù)據(jù)結(jié)構(gòu)的許多缺點(diǎn),比如使用數(shù)組必須預(yù)知數(shù)據(jù)大小,這樣很容易浪費(fèi)內(nèi)存空間。鏈表結(jié)構(gòu)則充分利用計(jì)算機(jī)的內(nèi)存空間,將所有的分散內(nèi)存空間實(shí)現(xiàn)動(dòng)態(tài)管理,俄羅斯方塊的鏈表定義如下所述fillrectangle(50+(block->x+c01)*BLOCK—LEN,50+(block一>Y+row)*BLOCK LEN。

      3.幾點(diǎn)收獲

      基于C語言的俄羅斯方塊游戲采用了先進(jìn)的圖形界面組函數(shù)、數(shù)組、結(jié)構(gòu)體和指針鏈表等技術(shù),能夠?qū)崿F(xiàn)不同類型的方塊生成和加工,下左右快速移動(dòng)和旋轉(zhuǎn)變形等,也可以利用函數(shù)實(shí)現(xiàn)整行消除。俄羅斯方塊有效提升了大眾移動(dòng)設(shè)備的娛樂需求,也提高了筆者學(xué)習(xí)和掌握C語言的實(shí)踐,體會(huì)到利用C語言編程需要熟練掌握它的數(shù)據(jù)類型,也需要根據(jù)需求隨機(jī)的谷歌或百度C語言的函數(shù)庫,能夠?qū)崿F(xiàn)快速編程和編譯,讓筆者掌握更多的C語言編程設(shè)計(jì)方法。同時(shí),基于C語言設(shè)計(jì)俄羅斯方塊還可以復(fù)制到其他程序,比如貪吃蛇游戲、五子棋游戲等,一通二百通,更好的為未來C語言應(yīng)用打下基礎(chǔ)。

      猜你喜歡
      程序開發(fā)數(shù)據(jù)類型鏈表
      詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
      如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
      APP應(yīng)用程序開發(fā)模式探究
      電子制作(2019年19期)2019-11-23 08:42:02
      基于二進(jìn)制鏈表的粗糙集屬性約簡
      跟麥咭學(xué)編程
      基于TestStand的自動(dòng)檢測程序開發(fā)
      電子測試(2018年11期)2018-06-26 05:56:16
      基于鏈表多分支路徑樹的云存儲(chǔ)數(shù)據(jù)完整性驗(yàn)證機(jī)制
      基于嵌入式系統(tǒng)Windows CE的應(yīng)用程序開發(fā)
      基于App inventor 2手機(jī)程序開發(fā)過程的學(xué)習(xí)與實(shí)——以“喵喵定時(shí)器”APP開發(fā)為例
      電子制作(2017年1期)2017-05-17 03:54:08
      鏈表方式集中器抄表的設(shè)計(jì)
      電測與儀表(2014年1期)2014-04-04 12:00:22
      大姚县| 博湖县| 奉节县| 阿鲁科尔沁旗| 蚌埠市| 西盟| 柳林县| 辰溪县| 萨迦县| 兴化市| 屏南县| 江源县| 岑溪市| 雅江县| 衡南县| 富裕县| 柞水县| 台北县| 石林| 新河县| 长阳| 岐山县| 星子县| 萝北县| 沙湾县| 连云港市| 武清区| 洞口县| 容城县| 渑池县| 滁州市| 墨江| 来凤县| 那坡县| 团风县| 古浪县| 昭苏县| 封丘县| 和平县| 濮阳市| 屏东市|