【vc++精品源码栏目提醒】:网学会员,鉴于大家对vc++精品源码十分关注,论文会员在此为大家搜集整理了“贪吃蛇vc语言源代码+流程图+课程设计报告-课程设计 - 培训资料”一文,供大家参考学习!
贪吃蛇vc语言源代码流程图课程设计报告 目录 第一章 引言 - 1 - 1.1关于题目 - 1 - 1.1.1题目要求 - 1 - 1.1.2选题背景 - 1 - 1.2关于编译软件 - 1 - 1.3关于兼容性 - 1 - 第二章 概要设计 - 2 - 2.1软件主要功能设计 - 2 - 2.1.1程序结构 - 2 - 2.1.2程序流程 - 2 - 第三章 软件实现 - 4 - 3.1变量函数及资源的声明 - 4 - 原文请找 3.1.2变量声明 - 4 - 3.1.3资源 - 5 - 3.2主要功能的实现 - 5 - 3.2.1游戏界面 - 5 - 3.2.2初始化食物 - 6 - 3.2.3开始游戏 - 7 - 3.2.4英雄榜 - 9 - 3.2.5游戏设置 - 9 - 第四章 结果与讨论 - 10 - 4.1程序运行 - 10 - 4.2错误调试与分析 - 12 - 第一章 引言 1.1关于题目 1.1.1题目要求 利用Microsoft Visual C制作一个贪吃蛇的小游戏,要求: (1)应用MFC单文档制作 (2)能够记录游戏时间,游戏成绩 (3)可暂停/继续并在玩家不愿游戏时停止游戏 (4)蛇的身体能够随着蛇的长度变色 (5)能够显示英雄榜 (6)有背景音乐和音效 1.1.2选题背景 贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我,它的制作方法对于以前的我而言都是很神秘的。
我希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。
虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从实践和实际的项目中提高自己的编程能力。
因此我选定了这个题目。
1.2关于编译软件 本程序采用Microsoft Visual C6.0的英文版本进行编译。
VisualC6.0是Microsoft公司推出的基于Windows操作系统的可视化C编程工具,尽管Microsoft公司推出了.NET平台的集成开发环境,但由于其良好的界面和可操作性,加上支持标准C/C规范,但仍有相当多的编程人员使用VisualC6.0进行应用系统的开发。
1.3关于兼容性 本程序经过调试,可以在XP系统下编译运行,也可以在Vista下运行,界面稍有不同,但不影响运行结果。
第二章 概要设计 2.1软件主要功能设计 2.1.1程序结构 根据分析,贪吃蛇这个程序一共要实现如下几个功能,包括游戏方面开始游戏、暂停游戏以及停止游戏,音乐音效的添加与控制,游戏帮助提示与英雄榜的显示等等。
具体的程序结构如下面的图1-1所示。
图2-1 贪吃蛇结构图 2.1.2程序流程 根据分析后的贪吃蛇结构设计出相应的贪吃蛇流程。
贪吃蛇的内容主要包括: 游戏开始,随机出现食物;按下ToolBar中的暂停按钮或Space键可以实现暂停功能;按下帮助键或ToolBar中的“?”键可获得游戏帮助说明;可播放背景音乐和音效并可通过菜单以及ToolBar控制其播放或停止等等。
图2-2 贪吃蛇流程图1410 贪吃蛇vc语言源代码流程图课程设计报告 第三章 软件实现 3.1变量函数及资源的声明 根据程序的结构,将贪吃蛇需要实现的功能细化成为相应的函数。
3.1.1函数声明 void CYuShuoView::OnDrawCDC pDC //在OnDraw函数中绘制游戏背景、游戏文字以及控制蛇的样式颜色。
void CYuShuoView::YsInitFood //初始化贪吃蛇的食物,使其随机生成 void CYuShuoView::YsInitGame //初始化贪吃蛇游戏参数 void CYuShuoView::YsReDisplayCPoint ysPoint //重绘游戏窗口 void CYuShuoView::OnYsBegin //开始游戏(菜单响应消息) void CYuShuoView::OnYsPause //暂停游戏(菜单响应消息) void CYuShuoView::OnYsStop //停止游戏(菜单响应消息) void CYuShuoView::OnYsExit //退出游戏(菜单响应消息) void CYuShuoView::OnYsEffect //控制游戏音效 void CYuShuoView::OnYsMusicbkg //控制游戏背景音乐 void CYuShuoView::OnYsLevel1 //控制游戏等级为初级 void CYuShuoView::OnYsLevel2 //控制游戏等级为中级 void CYuShuoView::OnYsLevel3 //控制游戏等级为高级 void CYuShuoView::OnYsHelpgame //游戏帮助 void CYuShuoView::OnYsBest //英雄榜的显示 3.1.2变量声明 CArray m_ysBody //定义点数组作为蛇的身体 CPoint m_ysFood //食物出现的点 int m_ysTime //显示时间 int m_ysTime1 //满10则进一位使时间增加1秒 原文请找 int m_yslevelctrl //等级控制变量 CString m_ysPlayer //玩家姓名 int m_yseffectctrl //音效控制变量 int m_ysmusicctrl //背景音乐控制变量 3.1.3资源 1、对话框 IDD_YS_HELPGAME //游戏帮助说明 IDD_YS_BEST //英雄榜 IDD_YS_RETRY //停止游戏确认 IDD_ABOUTBOX //关于游戏版本 2、音乐 IDR_YS_BKGMUSIC //游戏背景音乐 IDR_YS_EAT //贪吃蛇吃到食物的音乐 IDR_YS_LOWSCORE //游戏结束后得低分音乐 IDR_YS_HIGHSCORE //游戏结束后得高分音乐 3、位图 IDB_YS_BITMAP //游戏背景图 4、菜单/工具栏 IDR_MAINFRAME //系统自带菜单 IDR_YS_TOOLBAR //自己创建的工具条 5、头文件 mmsystem.h //播放音乐的相应文件 fstream.h //文件流文件 3.2主要功能的实现 3.2.1游戏界面 贪吃蛇游戏的游戏界面包括背景图片、蛇身体的绘制、蛇移动范围的绘制等等。
其中贪吃蛇的身体用什么方法绘制,才可以使得其在游戏过程中可以实现“吃”的功能是很重要的。
因此在游戏界面的初始绘制时就必须考虑到游戏时可能遇到的问题。
本程序采用点数组CArray m_ysBody来存储贪吃蛇,点数组的功能很强大,可以添加点,同时可以获得蛇的长度,对于而后进行游戏中控制蛇的颜色以及音效的播放等都有很大的帮助。
导入位图以及菜单工具条后,游戏未开始前(XP系统下)的界面显示如图3-1所示 图3-1 游戏初始界面显示 3.2.2初始化食物 确定用点数组存储贪吃蛇以后,贪吃蛇的食物如何达到随机出现,并且能够按照网格式与蛇头无偏差相接就是一个亟待解决的问题。
随机出现应采用rand函数来实现,而食物与蛇头无偏差相接则利用坐标来解决。
设置两个整型变量m_ysXm_ysY作为食物出现的点的坐标,令m_ysX rand30 m_ysY rand40即可。
使随机出现的点能够整除最小网格,也就是使食物与蛇头无偏差相接。
再由食物坐标(m_ysXm_ysY)与蛇头坐标是否相同判断蛇是否“吃”到了食物,设置判断标签ysTag,如果吃到了,ysTag为1,则再出现下一个食物,反之,如果没吃到,则不出现食物直到标签为1为止。
最后,再将(m_ysXm_ysY)赋给m_ysFood作为食物坐标,以便在其他函数中调用。
在下面的图3-2中,我们可以看到,蛇的身体是与出现的食物在一条直线上的,完全可以达到相接的目的。
图3-2 蛇与食物的相接 3.2.3开始游戏 开始游戏后的重点是如何用键盘来控制蛇的移动并传递到OnTimerUINT nIDEvent函数中去以及判断蛇是否死亡。
首先说明键盘与蛇的响应,设置一个方向控制变量m_ysDirect,再添加OnKeyDownUINT nChar UINT nRepCnt UINT nFlags函数来实现键盘消息的传递,按下不同的键盘按键,m_ysDirect会相应的改变,再利用switch语句在OnTimerUINT nIDEvent函数中对坐标进行相应改变即可。
如图3-3所示。
(1)左 (2)下 (3)右 (4)上 图3-3 键盘的上下左右键的效果 贪吃蛇vc语言源代码流程图课程设计报告 其次来解释一下如何判断蛇的死亡,由于蛇的身体是由点坐标数组构成的,因此判断蛇是否死亡其本质就是判断蛇头的坐标是否与游戏边框相同或者蛇头坐标是否与蛇自己的身体相同。
该过程也在OnTimerUINT
上一篇:
VC++串口上位机简单例程(源码及详细步骤) doc
下一篇:
加强公路桥梁施工质量、成本及进度的管理对策