學以緻用,為了使C語言的學習和運用不那麼枯燥,做一些GUI項目,所見即所得,能夠激發興趣,也有更大的成就感。
使用EasyX
EasyX 是針對 C++ 的圖形庫,可以幫助 C/C++ 初學者快速上手圖形和遊戲程式設計。
EasyX支援VC++以及Visual Studio,我使用的是Visual Studio 2022。
去官網下載下傳最新版安裝即可,會自動識别Visual Studio的庫檔案夾路徑并,這點很友善。
安裝EasyX
産品說明
遊戲玩法
遊戲玩法挺簡單的,就是随機幾個數字到棋盤格子上,過幾秒後數字隐藏掉,玩家按照數字大小順序點選對應的格子,正确地點選完數字即闖關成功,每闖一關增加一個數字。
核心功能
遊戲的玩法實作是項目的核心功能,從關卡初始化到關卡的更新,最終到關卡結束。
數字記憶遊戲
功能擴充
- 計時器:顯示闖關所用的時間
- 排行榜:輸入玩家昵稱,展示TOP10的闖關時間
- 設定中心:背景音樂開關、遊戲中的音效
項目開發
産品需求
項目立項開發前要了解完整的産品需求,然後去做技術選型以及人員的配置,并制定出項目的開發周期和重要節點。這裡我們簡單列一下産品的功能。
産品功能
子產品拆分
項目開發需要多人配合,是以要做子產品拆分,不同的人完成不同的功能子產品。即使隻有一個人開發,也要做好規劃,厘清主次。下面是對本項目簡單的子產品拆分。
子產品拆分
如果子產品A中需要調用子產品B中的函數,而子產品B還沒有開發,那麼我們通常的做法是在子產品B中定義一個空白函數(規定好輸入輸出),這樣不會打斷子產品A的開發程序,等A階段性的完成之後再去完善子產品B中的函數即可。
檔案規劃
項目檔案的目錄結構一般都是根據子產品劃分來定的。
- 配置檔案:存放一些常量,比如遊戲要素、顔色、文本資訊等
- 二進制檔案:儲存遊戲過程中的資料,比如排行榜、遊戲設定等,本項目沒必要使用專業的資料庫,用二進制檔案來存儲資料即可
- 資料模型檔案:把遊戲裡的要素抽象成資料模型,比如數字卡片資料結構包含數字、坐标、下一個數字等
- 遊戲畫面繪制檔案:負責遊戲的初始化繪制、關卡資訊提示等
- 遊戲邏輯控制檔案:數字卡牌點選回報、關卡切換、使用者輸入等互動性的邏輯
- 定時器、排行榜、遊戲設定三個檔案
程式設計思想
C語言是面向過程的語言,但我們盡量使用面向對象的思想去程式設計,把業務拆分、解耦,然後進行子產品化開發。
具體到子產品功能的開發,根據實際情況再去實作具體每個小功能程式的算法,到最後連接配接起來就串通了整個項目。
之前《C程式設計》中提到算法是程式的靈魂,而現在我們所做的就是給出了這個“數字記憶遊戲”的算法思路。
接下來就讓我們一起學習,通過實戰來真正的掌握C語言!