目录
项目目录结构
创建项目
在Visual Studio 2022中创建一个空白的项目,起名为:NumberMemoryGame。
命名规范
常规的变量、函数以及文件名等命名规范不再赘述,这里主要说一下项目中变量和函数的命名规范。
由于C语言没有命名空间的概念,所以在定义变量、函数的时候要避免与系统、第三方类库以及自身项目里的变量、函数重名,否则会出现难以预料的bug,本项目采取了增加前缀的措施来确保不会重名。
前缀构成:项目名首字母+文件名+表意函数名,中间用下划线连接,比如:NMG_view_init()。
目录结构
根据上一篇文章中提到的模块拆分,我们建立具体的源文件、头文件与之对应。
下面简单介绍一下每个文件的作用:
-
main.cpp是项目的入口文件,主函数main()就定义在这里
-
两个头文件:config.h定义一些常量,models.h定义项目里用到的数据结构模型
-
data.cpp,文件读写模块,就是项目里用到的文件数据库
-
game.cpp,游戏模块,控制整个游戏进程和交互
-
rank.cpp,排行榜模块,排行榜的展示以及更新
-
settings.cpp,设置模块,游戏设置中心
-
timer.cpp,计时器模块,计时和展示,作为排行榜的依据
-
views.cpp,窗口显示模块,控制整个项目的UI初始化、显示、更新等
编程模式
MVC
以上文件目录结构创建好后,我们就往面向对象的编程思路上去靠拢,首选是常用的MVC模式:
-
Model,定义在models.h中,管理所有抽象化对象的数据结构模型
-
View,视图,相当于浏览器,只管展示视图,尽量不要参与业务逻辑的编码
-
Controller,控制器,控制视图的数据展示以及用户和视图交互背后的逻辑处理
笔者GUI开发经验不多,再加上C语言自身的一些问题,很难去按照严格意义上的MVC模式去开发,但是我们的编程思想要向MVC看齐。
如果不理清关系、把逻辑分层、模块拆分开来,直接上手开发的话肯定会无从下手,而且过程会出现难以控制的bug,日后维护也很困难。