C語言重寫俄羅斯方塊

以前用C語言寫過一個俄羅斯方塊,但是那個程序我寫完之後就再也沒有看過,源碼實在太糟糕,個人都看不下去了。我還把這份源碼發在了網上,真不知道自己是怎麼想的。可能是第一次寫出一個一直想寫的程序,很興奮吧。相信很多學習C語言的人都有寫過俄羅斯方塊的經歷。

這次我重新打算將俄羅斯重新寫一遍,一來是覺得自己編程功力相對上提升了一點,於是想重新一份更好的源碼;二來是學了direct X遊戲編程的一些內容,想寫一份DX下的俄羅斯方塊,而不是GDI下的。你知道GDI的性能對於遊戲來說還是不夠用的。

1>. 數據與動畫分離

這次主要的設計思想是將程序數據與動畫分離。上一版的程序我是將數據處理和動畫雜合在一起的。

比如Move_left函數,實現向左移動。不止會更新數據,向左移動的動畫代碼也在這個函數中。這樣做當時覺得挺方便的,但是要修改起來挺麻煩。而這次主要是爲了移植到DX中去,使用DX的雙緩衝,將數據代碼與動畫代碼分離顯得尤爲重要。

這樣的話,數據處理是數據處理,動畫處理是動畫處理,互不干擾。DX代碼只要拿處理後的數據去繪製動畫就OK了。

2>.模塊功能

上一個版本中有比較多的重複代碼,所以在這個版本中我將一些處理數據的邏輯代碼中相同的部分作成了一個公用的模塊,只要傳遞參數進去,再檢測返回值,就能使用。這樣做比較方便,而且主要的是如果這個模塊有什麼bug,不會到好幾個函數中去尋找了。

這是不是降低代碼的耦合?

3>.邊開發,邊修復bug

從一開始寫程序的時候我們就應該將算法設計好。不然邊寫邊想邊寫很容易出bug。

我就是這樣一個典型的例子,喜歡邊寫邊想邊改。於是bug一個接着一個來,好在代碼勉勉強強能夠運行了。

不過估計其中還有不少的bug,好吧,遇到再改。不過怎樣測試代碼也是一個需要掌握的內容。

現在比以前強點了,以前只會使用printf,現在還會有個編譯器。

4>.關於頭文件

關於C語言中頭文件的包含,在寫這個數獨軟件之前我一直是懵的。現在知道了頭文件中怎麼聲明函數,然後再去C文件中實現具體的函數。還知道了extern關鍵字的用法。

總結出一點:編程是個實踐活,實踐出真知。

寫在最後:

這篇文章主要是記錄自己這次使用C語言寫俄羅斯方塊程序的經歷和一些想法。這幾天事比較多了,原本計劃2天寫完的,花了3天時間。接下來的幾天更加忙碌了,要準備期末考試,還要寫一個php爬蟲的練習,也要將這個俄羅斯方塊程序轉到DX下去,還有寫博客。挺多事的,不過還好。

期待DX下的俄羅斯方塊吧,我會加入更多有趣的東西的。到時候會開放源代碼,對我自己也是一個考驗。

若非註明,均爲原創文章,轉載請註明: 轉載自大笨兔

本文鏈接地址:C語言重寫俄羅斯方塊


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章