项目:做一个俄罗斯方块,具有旋转功能,满一行清除功能,记录得分、最高成绩。
方法:
- 采用了模块化的开发方式,把程序分为好几个功能模块来实现,主函数mian()只用来调用这些功能模块。
此外,各个功能模块间也有互相调用的情况。 - 预设了宏定义DOWN LEFT RRIGHT BOX WALL KONG等,预设给其ASCII码,方便后续调用与辨识。
- 通过blocks[base][space_z],(一维base表示7个基础方块,二维space_z表示旋转状态),叠加space[4][4],得到一个四维数组,用来预设7+7*3=28种图形。
- 预设了一个结构体face,其中存储着face.data[][]记录BOX WALL KONG,face.color[][]记录堆叠的图形每一块的颜色。5. 使用了c语言文件操作知识来保存/读取最高得分。6. 为了使界面更美观,使用自定义函数hidden_cursor()隐藏了光标,使用自定义函数color控制光标输出字符的颜色。7. 为了渲染界面,使用了自定函数gotoxy()控制光标在cmd窗口中的坐标位置。读取键入信息,实现操作功能,利用了控制键的ASCII码,使用switch()结构选择键入控制键对应的功能模块。
步骤
1.首先对cmd运行窗口做了处理,Hide_Cursor();中调用光标相关API隐藏光标。color();中对光标键入颜色做了预设,共计6种预设颜色。编写了gotoxy(int x,int y);函数,通过COORD这一windows API控制光标在cmd窗口中的坐标位置。 - 在开发之初先使用Inter_Face();构设了界面(地图边界WALL