基于MFC C++的AI俄罗斯方块设计
一、基本要求
1、要求利用面向对象程序设计方法以及C++的编程思想来完成设计。
2、要求有菜单、文件操作,数据使用数组、结构体等均可,键盘操作或鼠标操作均可。
3、所编写的程序必须上机通过,并获得满意的结果。
4、完成实验设计报告书。
二、实验内容
(1)实验题目:基于C++的AI俄罗斯方块
(2)问题描述
俄罗斯方块是在一个m*n 的矩形框内进行的,矩形框的顶部会随机的出现一个有四个小方块组成的砖块,每过一段时间,就会下落一格,知道他碰到底部,然后再过一个时间下落另一个砖块,依次进行,砖块是随机出现的。当发现底部砖块是满的话,则消去它从而得到相应设置的分数,当砖块到达顶部的时候,游戏结束。
选择俄罗斯方块进行C++面向对象程序设计课程设计主要是在学习C++这门面向对象语言的基础上,并通过实践加深对 C++面向对象程序设计语言特点的认识与理解。同时,可以提高运用C++编程语言解决实际问题的能力;锻炼实际的编程能力;还能提高调查研究、查阅技术文献、资料以及编写软件设计文档的能力。
(3)功能描述
【1】实现了手动游戏和自动游戏。
【2】实现了方块的变形、下落、左移、右移消行等基本的功能。
【3】实现暂停、计分、音效设置以及等级设置功能。
【4】界面窗口、以及小方块图形设计功能。
(4)程序分析
游戏状态结构
enum eGameState {
GAME_INFO,
GAME_MENU,
GAME_MENU_SET,
GAME_MENU_MUSIC,
GAME_LOAD,
GAME_IN_PRE,
GAME_AUTO,
GAME_IN,
GAME_WIN,
GAME_ITEM,
GAME_FAIL,
GAME_PASS,
GAME_EXIT
};
//窗口数据
#define GAMEWIDTH 430
#define GAMEHEIGHT 480
#define ITEM_EDGE 22
//界面
#define RIGHT_RECT_X 266
#define RIGHT_RECT_Y 20