游戏程序设计实验设计报告.doc

上传人:灯火****19 文档编号:134945825 上传时间:2020-06-10 格式:DOC 页数:11 大小:168KB
返回 下载 相关 举报
游戏程序设计实验设计报告.doc_第1页
第1页 / 共11页
游戏程序设计实验设计报告.doc_第2页
第2页 / 共11页
游戏程序设计实验设计报告.doc_第3页
第3页 / 共11页
游戏程序设计实验设计报告.doc_第4页
第4页 / 共11页
游戏程序设计实验设计报告.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《游戏程序设计实验设计报告.doc》由会员分享,可在线阅读,更多相关《游戏程序设计实验设计报告.doc(11页珍藏版)》请在金锄头文库上搜索。

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 平台构建 模块应具有高内聚性 低耦合性 这样 程序运行才更稳定 效率更高 据功能将贪吃坐标游戏划分成四个大模块 九个小模块 每个 模块均具有自己的功能 而

5、且 比较容易画出各个模块的流程图 3 2 构建结构图 四 项目设计四 项目设计 贪吃坐标游戏体系机构 给出总体的模块结构图 确定程序的 主要函数及之间的调用关系 同时设计坐标与游戏者等等的具体的 数据结构 4 1 模块划分模块划分 主控模板 主控模块是由 main 函数实现 主要用来依次调用各个下 层的模块 从而控制完成整个程序的功能 画面主界面模块 画出一个封闭的墙 游戏过程模块 该模块是整个程序的核心 它完成整个游戏过程 用函数 来实现 每次坐标移动的时候 从最后一节开始到第二节 将前一节的坐标赋给后一节的坐标 移动后把最后的一节 用背景色覆盖 然后坐标头按方向键更改位置 要确保人 物出现

6、在 10 的倍数位置上 判断坐标是否迟到人物的是 坐标头坐标和人物坐标是否相同 游戏结束处理模块 游戏结束的时候 读取出记录 4 2 棋盘与坐标的数据结构棋盘与坐标的数据结构 表示人物与坐标的数据结构设计 用坐标函数 Xstruct SPoint int x int y 表示 则矩形块用函数画出来 在开始前 开始时在棋盘正 中有两白两黑四个棋子交叉放置 黑棋总是先下子 放置棋子后 设置坐标的一节身体为一个矩形块 用坐标来表示 由于在游戏的 过程中坐标的身体不断的增长 需要用数组来存放每节的坐标 利 用 derection 分别表示坐标的右 左 上 下的方向 节点图像显示运动状态 方向 enum

7、 BitmapState M NONE M UP UP M 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 MoveState S NONE S UP S DOWN S LEFT S RIGHT 坐标位置结构 struct SPoint int x int y class CSnake struct Snake Struct 定义坐标体状态 MoveState

8、 head MoveState body MoveState tail 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 vo

9、id ChangeDirect MoveState 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 FILE static char THIS FILE FILE endif IMPLEMENT DYNCREATE CMainFrame CFrameWnd BEGIN MESSAGE MAP CMainFrame CFrameWnd ON WM CREATE END MESS

13、AGE MAP static 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 WS VI

14、SIBLE CBRS TOP CBRS GRIPPER CBRS TOOLTIPS CBRS FLYBY CBRS SIZE DYNAMIC m wndToolBar LoadToolBar IDR MAINFRA ME TRACE0 Failed to create toolbar n return 1 if m wndStatusBar Create this m wndStatusBar SetIndicators indicators sizeof indicators sizeof UINT TRACE0 Failed to create status bar n return 1 m wndToolBar EnableDocking CBRS ALIGN ANY EnableDocking CBRS ALIGN ANY DockControlBar return 0 BOOL CMainFrame PreCreateWindow CREATESTRUCT cs style cs style cs cx 580 cs cy 400 return TRUE ifdef DEBUG void CMainFrame AssertValid const CFrameWnd AssertValid void CMainFrame Dump CDumpContext endif

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 幼儿教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号