武汉理工大学《可视化编程》课程设计说明书
5系统设计过程中自己所遇到的问题及相应的解决方法和解决过程。
(1)在设计重新开始时,贪吃蛇出现了重叠的现象,即出现了多条的贪吃蛇如下图
解决方法;之所以会出现重叠,可能是在再次调用onstart函数时界面没有被重新的清理干净,所以在调用开始函数前写了一段刷新界面的代码(即再次填充原本整个背景的颜色如下:
CDC *pDC=GetDC();
CBrush backBrush(RGB(100,100,100));
CBrush* pOldBrush = pDC->SelectObject(&backBrush); CRect rect;
pDC->GetClipBox(&rect);
pDC->PatBlt(rect.left,rect.top,rect.Width(),rect.Height(),PATCOPY); pDC->SelectObject(pOldBrush); pDC->Rectangle(19,19,501,501);
使得问题得到解决,先尝试自己能想到的的可能的原因.
16
武汉理工大学《可视化编程》课程设计说明书
(2)修改窗口初始的大小,一开始默认的窗口比例不协调,看上去不舒服,.于是查询资料(网络)得到修改的方法;
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) {
if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE;
// TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs cs.cx = 100; cs.cy = 100;
return TRUE; }
(3)同时在写程序时一些细节亦要注意,
经检查仅仅只是大小写的问而已,有时还会浪费一定的时间.
(4)一开始我的贪吃蛇的移动速度是不变的,写完后我在想能不能随着游戏的进行而变的更难,于是我尝试了很多方法,调用各种函数,最后还是在看程序想起自己编程时的settimer,于是就查相关的东西,最后写出: if(Snake[0].len==2)SetTimer(1,370,NULL); if(Snake[0].len==3)SetTimer(1,270,NULL); if(Snake[0].len==6)SetTimer(1,200,NULL); if(Snake[0].len==9)SetTimer(1,100,NULL);
17
武汉理工大学《可视化编程》课程设计说明书
6结束语
这次课程设计,我选择用MFC编写一个贪食蛇的程序。在编写程序之前,我只有很少的关于MFC的程序设计知识,因此,在刚开始,我遇到了很多困难。为此,我查阅了许多关于贪食蛇的资料,也在网上看了许多关于贪食蛇的算法。做好了准备之后,才开始写我的贪食蛇,并且加了很多附加功能。这次课程设计锻炼了我的动手能力。通过完成贪食蛇游戏的程序设计,累积了我的实际编程经验,也提高了我独立解决问题的能力,让我明白实践中的许许多多不同于理论的东西
18
武汉理工大学《可视化编程》课程设计说明书
7参考文献:
[1]. 欧阳志宏,MFC程序设计轻松入门,人民邮电出版社,北京,2009-4-1 [2]. 姚领田,MFC窗口程序设计,水利水电出版社,北京,2007-5-1
19
武汉理工大学《可视化编程》课程设计说明书
本科课程论文评分标准
班级 论文题目 评阅点 软件1202 学号 0121210680201 姓名 帅宗斌 基于MFC的贪吃蛇游戏设计与实现 评分标准(细则)正确实现本程序所需全部功能,算法设计正确合理且有一定创意 实现所需功能,算法正确 分值 40分 30分 15分 5分 0分 20分 15分 10分 5分 15分 10分 5分 0分 25分 20分 15分 5分 给分 功能及算法 基本实现所需功能 (40分) 有明显重大错误 无法实现程序功能 界面美观、合理,可操作性强 界面和操界面合理,可操作 作性 界面尚可,基本可操作 (20分) 可操作较差 程序可读性好、逻辑清晰,程序完整,可维护性好, 程序可读、程序可读、可维护 可维护性 (15分) 基本可读可维护 逻辑混乱、不可读 论文规范,行文流畅,层次清晰 论文书写基本规范,文理较通畅 论文质量 结构较合理,层次较清楚,基本符合要(25分) 求 结构混乱,文不对题目,或者有明显抄袭现象 总分
教师签名:
20
武汉理工大学《可视化编程》课程设计说明书
21