




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、游戏课程设计报告游戏课程设计报告题目:题目: 超级黑白棋超级黑白棋 班级:班级: 11 数媒数媒 姓名:姓名: 徐继涛徐继涛 学号:学号: 110804035 2014 年 1 月 6 日目目 录录一、目的与要求.二、游戏设计方案三、游戏开发平台构建四、项目设计.五、游戏创新描述六、调试运行与分析七、程序清单.参考文献.一、一、 游戏设计目的及要求游戏设计目的及要求通过游戏程序设计,提高编程兴趣与编程思路,巩固 C+语言中所学的知识,合理的运用资料,实现理论与实际相结合。黑白棋,又叫反棋、奥赛罗棋、苹果棋或翻转棋。黑白棋在西方和日本很流行。游戏通过相互翻转对方的棋子,最后以棋盘上谁的棋子多来判
2、断胜负。它的游戏规则简单,因此上手很容易,但是它的变化又非常复杂。有一种说法是:只需要几分钟学会它,却需要一生的时间去精通它。(1) 收集资料,分析课题,分解问题,形成总体设计思路;(2) 对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍;(3) 上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行;(4) 完成课程设计报告,并进行答辩(5).黑白棋的棋盘是一个有8*8方格的棋盘。下棋时将棋下在空格中间,而不是像围棋一样下在交叉点上。开始时在棋盘正中有两白两黑四个棋子交叉放置。游戏结束时输出得分。画出模块枝干图与每个模块的程序流程图。修
3、改某些代码,改变其外观及功能。(6).游戏操作应尽量简单。界面美观,让人看了觉得舒服。二、游戏设计方案二、游戏设计方案2.1、算法设计:玩游戏过程采用递归算法,控制循环过程,可使游戏重复玩,判断迷宫游戏结束的算法是通过判断人有没有到达终点。使坐标向前移动采用算法,通过递归算法将人物的每一节依次向前移动。横坐标与纵坐标依次向前赋值,从而达到使人物前移的目的。2.2、数据结构 下棋步法信息分别用两个结构体存储与表示。将人物的横坐标X、纵坐标Y和判断是否要出现下棋的位置分别作为人物的结构体的成员。坐标的横坐标数组,纵坐标数组,坐标的节数N,坐标的移动方向DIRECTION、坐标的生命分别作为坐标的结
4、构体的成员。结构体内每个成员的存储类型均为整型。简要说明:图形驱动即完成初始化图形系统功能;开始画面模块的主要作用是根据设置绘制出窗口;玩游戏的过程是游戏此游戏程序的核心,又可细分为好多小的功能模块;其中,显示人物模块仅完成显示人物功能;坐标前移模块即通过递归算法实现坐标的向某方向移动;判坐标死模块的功能是通过判断是否无棋可下,迟到棋盘来判断步法有没有死亡。三、游戏开发平台构建三、游戏开发平台构建3.1、平台构建模块应具有高内聚性,低耦合性。这样,程序运行才更稳定,效率更高。据功能将贪吃坐标游戏划分成四个大模块,九个小模块。每个模块均具有自己的功能,而且,比较容易画出各个模块的流程图。3.2、
5、构建结构图四、项目设计四、项目设计 贪吃坐标游戏体系机构,给出总体的模块结构图,确定程序的主要函数及之间的调用关系,同时设计坐标与游戏者等等的具体的数据结构。4.1 模块划分模块划分 主控模板 主控模块是由 main 函数实现,主要用来依次调用各个下层的模块,从而控制完成整个程序的功能。 画面主界面模块 画出一个封闭的墙。 游戏过程模块 该模块是整个程序的核心,它完成整个游戏过程,用函数来实现,每次坐标移动的时候,从最后一节开始到第二节,将前一节的坐标赋给后一节的坐标,移动后把最后的一节用背景色覆盖,然后坐标头按方向键更改位置,要确保人物出现在 10 的倍数位置上,判断坐标是否迟到人物的是坐标
6、头坐标和人物坐标是否相同。 游戏结束处理模块 游戏结束的时候,读取出记录。4.2 棋盘与坐标的数据结构棋盘与坐标的数据结构 表示人物与坐标的数据结构设计,用坐标函数Xstruct SPointint x;int y;表示,则矩形块用函数画出来,在开始前,开始时在棋盘正中有两白两黑四个棋子交叉放置,黑棋总是先下子。放置棋子后,设置坐标的一节身体为一个矩形块,用坐标来表示,由于在游戏的过程中坐标的身体不断的增长,需要用数组来存放每节的坐标,利用 derection()分别表示坐标的右、左、上、下的方向。/节点图像显示运动状态(方向)enum BitmapStateM_NONE,M_UP_UP,M_
7、DOWN_DOWN,M_LEFT_LEFT,M_RIGHT_RIGHT,M_UP_LEFT,M_UP_RIGHT,M_LEFT_UP,M_LEFT_DOWN,M_RIGHT_UP,M_RIGHT_DOWN,M_DOWN_RIGHT,M_DOWN_LEFT;/节点运动状态(方向)enum MoveStateS_NONE,S_UP,S_DOWN,S_LEFT,S_RIGHT;/坐标位置结构struct SPointint x;int y;class CSnakestruct Snake_Struct/定义坐标体状态MoveState head;MoveState *body;MoveState t
8、ail; ;private:int m_length; /坐标的长度Snake_Struct m_newSnake; /坐标的新态的所有节点运动状态Snake_Struct m_oldSnake; /坐标的原态的所有节点运动状态BitmapState *m_pStateArray; /坐标的所有节点显示位图的状态SPoint *m_pPos; /坐标体坐标private:BitmapState GetRightState(MoveState oldDirect,MoveState newDirect);public:void Move(void); void ChangeDirect(Move
9、State d);void AddBody(int n=1);void SetHeadPos(int x,int y);BitmapState* GetStateArray(void);SPoint* GetPos(void);bool IsHeadTouchBody(int x,int y);int GetLength( void );void Initial( void );public:CSnake(int x_pos=0,int y_pos=0,int len=1);CSnake();#endif /_GREED_SNAKE_4.3main 函数实现1.4main 函数函数 主函数是函
10、数的数控模块。首先初始化图形系统,然后创建一个ctable 桌子,接着调用函数初始化图形系统,之后调用函数画出游戏开始画面,再调用函数,即开始了游戏的具体过程,游戏结束后调用 End 函数进行游戏结束处理:从文件中读取记录信息、排序、显示排行榜信息,最后关闭图形系统,结束程序。主控模块的算法流程图如图所示。其中带有两个竖线的矩形框表示对自定义函数的调用。五、五、游戏创新描述游戏创新描述本游戏和传统的游戏不一样,主要由以下几点: 设计了西方和日本等国流行的游戏。 游戏中增添了难度级别。 画面简洁,好玩。开 始初始化图形系统关闭图形系统游戏结束处理画游戏开始界面游戏具体过程结 束六、六、调试运行与
11、分析调试运行与分析试与测试软件的目标就是发现并改正潜伏的错误。一个程序,必须经过认真的调试和测试,才能尽量减少错误、保证程序满足功能、性能需求,达到最初的设计、使用要求,从而保证程序的开发质量。详细设计完成后,用 C 语言根据各个模块的算法来设计程序,每个模块都设计成一个自定义函数。几个模块放在一个构成一个源程序文件,或者一个模块构成一个源程序文件。源程序设计好后,输入到计算机,并储存到磁盘上;然后对每个源程序文件都进行独立编译和调试;并针对不同的模块设计测试用例进行单元测试;最后,将几个分别开发的模块组装到一起,形成一个完整的程序,进行集成测试,从而发现并改正程序中存在的一些潜藏的错误,并使
12、程序的容错能力大大增强。调试与测试过程及结果如下所述:七、七、程序清单程序清单MainFrm.cpp:#include stdafx.h#include bw.h#include MainFrm.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifIMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)ON_WM_CREATE()END_MESSAGE_MAP()s
13、tatic UINT indicators =ID_SEPARATOR, ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,;CMainFrame:CMainFrame()CMainFrame:CMainFrame()int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)if (CFrameWnd:OnCreate(lpCreateStruct) = -1)return -1;if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD
14、 | WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) |!m_wndToolBar.LoadToolBar(IDR_MAINFRAME) TRACE0(Failed to create toolbarn);return -1; if (!m_wndStatusBar.Create(this) |!m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT)TRACE0(Failed to create status barn);return -1; m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_wndToolBar);return 0;BOOL CMainFrame:PreCreateWindow(CREATESTRUCT& cs)if( !CFrameWnd:PreCreateWindow(c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京市中医院腹腔镜结直肠癌根治术术者分级认证考核
- 2025吉林省矿业集团有限责任公司遴选31人考前自测高频考点模拟试题及答案详解(新)
- 北京市中医院神经重症监护室主任岗位竞聘考核
- 秦皇岛市中医院护理学科团队建设考核
- 2025年芜湖经济技术开发区招聘公办幼儿园教职工26人模拟试卷及答案详解(考点梳理)
- 邢台市人民医院重大疑难手术主刀资格认证
- 2025年上半年都江堰市卫生健康局所属事业单位公开考试招聘工作人员(78人)模拟试卷附答案详解
- 2025湖南省怀化学院高层次人才公开招聘100人模拟试卷含答案详解
- 2025年浙江宁波北仑区人民医院医疗健康服务集团霞浦院区招聘编外人员1人考前自测高频考点模拟试题附答案详解(模拟题)
- 上海市人民医院影像主任医师资格认证
- 男朋友男德守则100条
- 食品安全风险管控日管控检查清单
- 乡村振兴汇报模板
- 津16D19 天津市住宅区及住宅建筑内光纤到户通信设施标准设计图集 DBJT29-205-2016
- 医院感染科室院感管理委员会会议记录
- 高分子物理-第2章-聚合物的凝聚态结构课件
- CNAS体系基础知识培训课件
- 三字经全文带拼音打印版带翻译
- 河蟹健康养殖与常见疾病防治技术课件
- 儿童牙外伤讲稿
- GB∕T 41491-2022 配网用复合材料杆塔
评论
0/150
提交评论