拼图游戏课程论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象编程实习报告题目:拼图游戏
学号
姓名
专业班级
指导教师
实践日期
目录
一、综合训练目的与要求 (1)
1.教学目的 (1)
2.教学要求 (1)
二、综合训练任务 (1)
1.训练目的: (1)
2.基本要求: (1)
三、总体设计 (1)
1.类图的设计 (1)
2.游戏实现的功能简介 (2)
四、详细设计说明 (2)
1.CPicture1View类 (2)
2.CMainFrame类 (3)
3.CPcShow类 (4)
五、调试与测试 (5)
1.打开拼图 (5)
2.打开本地图片 (6)
3.选择游戏模式4*4 (7)
3.拼图成功 (8)
六、实习日志 (8)
七、实习总结 (10)
八、附录:核心代码清单 (10)
1.MainFrm.cpp (10)
2.pictrue1View.h (11)
3.pictrue1View.cpp (14)
一、综合训练目的与要求
1.教学目的
在《面向对象程序设计》课程教学的基础上,在相对集中的实训教学时间内,通过对一个功能较完整的小型游戏的设计与开发,深入复习并进一步掌握面向对象的程序设计思想与方法。同时,作为整个实践教学体系一部分,系统培养采用面向对象的方法分析问题与解决问题的能力及团体组织与协作能力。
2.教学要求
从课程设计的目的出发,通过设计工作的各个环节,达到以下教学要求。
1)根据实现的功能,划分出合理的对象类,明确对象类间的关系。
2) 为每个对象类设计正确的域和方法,为每个方法设计合理的方法体。同时,为对象类及内部的域和方法运用正确的修饰符,如访问控制符等。
3)编程简练,程序功能齐全,能正确运行。
4)说明书、流程图要清楚,规范(必须采用UML格式)。
5)课题完成后必须按要求提交课程设计报告,格式规范,内容详实。
二、综合训练任务
1.训练目的:
1)要求学生达到熟练掌握C++语言的基本知识和技能。
2)基本掌握面向对象程序设计的基本思路和方法。
3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2.基本要求:
1)要求利用面向对象的方法以及C++的编程思想来完成系统的系统结构。
2)要求在设计的过程中,建立清晰的UML类关系图,描述出类族之间的关系。
3)在系统中定义的每个类中要有各自的属性和方法。
4)具有简单的图形界面。
5)写出设计说明书。
三、总体设计
1.类图的设计
我们在VC6.0中共用了六个类,除提供的类外还定义了CPcShow类记录原始图片信息与切割后的图片信息。
CMainFrame用来实现菜单功能和控制窗口,而在CPicture1View中则是实现拼图游
戏的主要函数。详见图1:
图1、类图
2.游戏实现的功能简介
以面向对象程序设计语言C++为编程工具,在VC6.0的开发软件环境下,完成拼图游戏的界面及功能的实现。该游戏实现的主要功能有:
1)游戏中有原图提示,有快捷键操作。
2)通过鼠标控制滑块移动拼图。
3)打开本地图片作为拼图素材。
4)选择拼图游戏的难易程度,即3*3、4*4或5*5进行游戏。
5)成功拼图后补全图片并显示所用时间与步数。
6)在已选拼图模式下实现游戏的重新开始。
四、详细设计说明
1.CPicture1View类
实现游戏的主要部分,它负责调用算法模块来实现逻辑并把逻辑转换为相应的动态演示,负责对图片进行绘制,分割,打乱以及控制滑块的移动,包含选择游戏图片,选择游戏的难易程度等响应函数,还负责判断游戏的开始与结束。
核心函数如下:
1)构造函数,默认为3*3初级拼图,并调用OnStart函数初始化游戏。
CPictrue1View()
2)选择图片,通过菜单和窗口中的图片选择待拼的图片,我在这里提供了4个图片void OnPicture1()
void OnPicture2()
void OnPicture3()
void OnPicture4()
3)难度选择,可选择任意分割方式,这里只提供了3*3,4*4,5*5的分割
void OnStage1()
void OnStage2()
void OnStage3()
4)打开图片,可打开任意bmp图片
void OnPicSelect()
5)计时器,通过调用系统时间来记录玩家游戏的时间
OnTimer(UINT nIDEvent)
6)窗口函数,用于美化窗口
BOOL PreCreateWindow(CREATESTRUCT& cs)
7)开始函数,用于初始化程序
void OnStart()
8)随机函数,用于图片的随机排列并确保拼图的可行性
void RandPic()
2.CMainFrame类
实现窗口菜单的应用,美化窗口。见图2:
图2、CMainFrame类
窗口菜单如图3:
图3、窗口菜单演示
3.CPcShow类
主要用于生成二维数组m_pShow,用picIn和picOut分别小图片的原始信息和分割
后的小图片的信息。类图见图4:
图4、CPcShow 类