海南大學 周宇揚
引言:隨著TD-LTE移動通信、智能手機等軟硬件技術的發展,越來越多的益智型小程序誕生,大大的促進了人們的娛樂生活。C語言作為一種面向過程的程序開發語言,擁有數據、指針、結構體等多種數據類型,運行速度非常快,可移植性強,編制游戲程序具有先天性優勢,具有重要的作用和意義。本文基于筆者的研究和分析,首先描述C語言在游戲程序開發中的優勢,然后以經典益智游戲俄羅斯方塊為實例,設計了C語言數據、結構體和鏈表,為游戲程序開發提供參考。
C語言作為一種應用程序開發語言,擁有豐富的數據結構類型和運算符,并且開創性的提出了指針類型,實現計算機物理地址的運算,進行位操作,兼具高級程序語言和低級程序語言的優點,可以變現系統軟件,也可以開發應用軟件,比如Unix操作系統、Linux操作系統、游戲程序等,利用圖形功能支持各類尺寸的顯示器和驅動器,計算功能和邏輯判斷能力非常強。C語言在游戲程序開發中具有很強的優勢,如下所述:
(1)面向過程程序開發。C語言是一種面向過程的語音,程序員可以使用過程或函數執行任務,面向過程語言與人們的日常思考一直,易于學習和掌握,能夠面向過程的語音開發程序,編寫算法實現程序功能。
(2)擁有許多庫文件。C語言提供了大量的函數程序,包括系統自動生成的函數和程序語言編寫的函數,C語言編譯器自帶頭文件,這些頭文件中的函數都是已經編寫完成的基本功能,可以直接調用和使用。
(3)編譯運行速度非常快。C語言編譯器產生的機器代碼運行速度非常多,C編譯器編譯千行代碼僅需要兩秒,同時完成優化代碼提高執行速度功能。
俄羅斯方塊是一款風靡全球的智能手機應用程序,利用移動、旋轉和擺放等功能輸出各種方塊,然后將其排列成一行或多行消除得分,俄羅斯方塊看似簡單卻變化無窮,簡單易學和益智,但是熟練掌握應用程序操作卻需要開動腦筋,因此目前的普及程度非常高。本文基于C語言開發俄羅斯方塊游戲程序,其主要功能包括游戲方塊預覽、游戲方框控制、游戲分數統計和游戲幫助功能。
游戲程序初始化運行開始之后,游戲方塊預覽區域出現一個游戲方塊,有利于玩家控制游戲策略。俄羅斯方塊有七種不同的方塊組成,因此具有七種策略,游戲方塊生成是隨機的。游戲方塊控制能夠可以實現方塊的自由下落、左移、快速下移、右移、旋轉和消除行。游戲分數控制可以實現分數增加,消除一行增加100分,也可以自動化返回游戲初始界面。游戲幫助功能可以實現游戲操作提醒功能。俄羅斯方塊的主要算法流程如圖1所示。

圖1 俄羅斯方塊結構化流程圖
俄羅斯方塊采用C語言開發,關鍵功能是實現數據類型的設計,其余操作實現簡單,數據類型包括數組、結構體和鏈表。
(1)數組設計
C語言數組可以把具有相同類型的數據有序組織在一起。俄羅斯方塊使用了三個關鍵數組,分別是俄羅斯方塊的四個變換樣式、方塊顏色、玩家游戲得分。
(2)結構體設計
俄羅斯方塊使用了兩個結構體,分別是方塊結構體Struct Block和Struct BlockInfo,Struct Block可以定義俄羅斯方塊的狀態和顏色,提示給出下一方塊的信息;Struct BlockInfo能夠定義俄羅斯方塊的移動方向和移動距離。
Struct Block{ unsigned int rockShapeBits;//描述方塊的形狀,8位字節,每4位表示一行
Int nextRockIndex;//表示下一個方塊的數組下表}Block Type;
Struct BlockInfo { int left; int right; int translate; int drop; int speeddrop} BlockInfo Type; //描述方塊方向
(3)鏈表設計
C語言最具關鍵的程序數據類型就是指針,利用指針可以設計鏈表結構,鏈表結構可以克服數據結構的許多缺點,比如使用數組必須預知數據大小,這樣很容易浪費內存空間。鏈表結構則充分利用計算機的內存空間,將所有的分散內存空間實現動態管理,俄羅斯方塊的鏈表定義如下所述fillrectangle(50+(block->x+c01)*BLOCK—LEN,50+(block一>Y+row)*BLOCK LEN。
基于C語言的俄羅斯方塊游戲采用了先進的圖形界面組函數、數組、結構體和指針鏈表等技術,能夠實現不同類型的方塊生成和加工,下左右快速移動和旋轉變形等,也可以利用函數實現整行消除。俄羅斯方塊有效提升了大眾移動設備的娛樂需求,也提高了筆者學習和掌握C語言的實踐,體會到利用C語言編程需要熟練掌握它的數據類型,也需要根據需求隨機的谷歌或百度C語言的函數庫,能夠實現快速編程和編譯,讓筆者掌握更多的C語言編程設計方法。同時,基于C語言設計俄羅斯方塊還可以復制到其他程序,比如貪吃蛇游戲、五子棋游戲等,一通二百通,更好的為未來C語言應用打下基礎。