贪吃蛇C++设计报告
C#贪吃蛇程序设计报告
《C#程序设计》课程设计
题目:贪吃蛇游戏
专业:计算机科学与技术11 学号: ********** *名:***
指导老师:**
完成日期: 2014年10月26 成绩:
目录
1 前言 (2)
2 需求分析 (2)
2.1要求 (2)
2.2任务 (2)
2.3运行环境 (2)
2.4开发工具 (3)
3 概要设计与详细设计 (3)
3.1程序功能 (3)
3.2设计思想 (3)
3.3设计总体流程图 (4)
3.4设计的具体实现 (6)
4 程序测试 (11)
4.1测试内容与结果 (11)
4.2程序运行效果图...................... 1错误!未定义书签。
5 课程设计总结 (16)
参考文献 (16)
附录 (17)
1 前言
用C#语言实现贪吃蛇界面游戏以达到一下三个实验目的:
1、复习、VC#.NET的基础知识,进一步加深对VC#.NET技术的理解和掌握;
2、课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理
论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力;
3、培养学生在项目开发中团队合作精神、创新意识及能力。
2 需求分析
2.1实验内容
贪吃蛇游戏开发,首先它可以为大家提供一种当前比较流行的休闲小游戏。贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着很多人,它的制作方法对于很多同学而言都是很神秘的。所以我们希望通过这学期所学知识把它剖析开来,真真正正的了解它的本质和精髓。在这次学习中我们将从实践和实际的项目中提高自己的编程能力。因此决定选择这个题目作为VC#.NET的课程设计。
c语言程序贪吃蛇课程设计报告范文
高级语言程序设计
课程设计报告
Experiment Designing reporter
课程名称:高级语言程序设计
英文名称 : C Program Experiment Designing
专业:自动化 111
学号: XXX
姓名: XXX
指导教师: XXX
日期: 2012 年 6月 17日至 2011 年6 月 20 日
山东工商学院信电学院
山东工商学院信电学院自动111班第一组“贪吃蛇课程设计报告“一:课程设计内容
程序功能介绍
贪吃蛇游戏是一个经典小游戏,深受众多玩家喜爱,其规则是:一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。此游戏不仅能锻炼人的思维敏捷性,而且还可以提高玩家的逻辑判断能力。
设计思路
我们小组称设计本次课题——贪吃蛇的思路为“贪快速上手贪吃蛇三步曲”:
第一步:
寻找到一个真正可以运行的已用C编好的贪吃蛇。
因为我们毕竟从未看到过用C编游戏的程序,让我们两手一抹黑的开始编写是有一定的困难的,如果我们自己找一个已经设计好的程序,以此为跳板实现我们想要达到的效果,那么肯定是高效的。所以我们组统一决定,去寻找一个可以运行的C编译的贪吃蛇。
第二步:
运行游戏并了解游戏程序。
我们认为,只有你运行并了解一个游戏,才能知道游戏里需要什么样的改进和创新,如果你自己本身就没玩过这个游戏,那么你就是再有技术,你也永远改进和改编不了一个游戏,因为你根本不知道你在干什么。
C语言课程设计--贪吃蛇游戏
本文由清风灬鬼迷贡献
rtf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
C语言课程设计报告
题目:贪吃蛇游戏
专 业: 业: 级: 班 级: 号: 学 号: 名: 姓 名: 指导老师: 指导老师: 绩: 成 绩: 设计日期: 设计日期:
目
录
《C语言课程设计》报告 1 语言课程设计》 题目: 题目:贪吃蛇游戏 1 3 一、选题背景 4 二、设计思路 四、程序流程图 5 五、原程序清单 5 六、程序运行结果 11 12 七、设计总结 14 八、教师评语
一、选题背景
C语言实际上已经成为了中级语言的事实上的标准,如果你从事嵌入式开 发、芯片设计等,C语言是必须懂的基础;在高级语言上,C语言的简练和精确 也具备特殊的优势;VC的强大在Windows平台上其它语言更是难与之相匹敌, 在Unix/Linux平台上,C语言也是最终要的语言,Linux的内核也主要是以C语言 写的。 当然C语言也有缺点:就是难,容易出错,因为它的数据类型需要精确, 而导致不够深入理解的程序员常容易犯错。 通过本学期对C语言的学习,掌握了C语言的基本语法,能编一些小程序。 通过这次实习,结合C++语言,编写了著名的贪吃蛇游戏,目的提高自己的编 程水平。
二、设计思路
程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身 体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开 始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前 移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按 下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现 是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新 蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景 色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义 两个结构体:食物与蛇
C语言课程设计报告(贪吃蛇)
C语言课程设计报告
(项目:贪吃蛇)
学号:
姓名:
课程设计题目:贪吃蛇游戏
专业班级:核工程与核技术4班
报告人姓名:
学号:
同组组长:
同组其他成员:
课程教师:
实验地点:95101实验室
完成起止日期:2011年3月7日至2011年3 月
15日
一、课程设计概述(目的、任务、开发环境、参考资料)
课程目的:1.熟悉二维数组的应用
2.图形库文件中图形函数的使用
3.通过游戏程序增加编程兴趣,提高编程水平
课程任务:1.数组元素为结构体的数组应用
2.全局变量应用
3.按键处理
4.数组元素与蛇食物对应关系
5.图形方式
开发环境:turbo C
参考资料:《C语言课程设计案例精编》
郭翠英等编著中国水利水电出版社
二、项目的可行性研究
项目流程图
三、项目设计的基本原理和采用的主要方法与技术
1.项目流程图
2.graphics.h库函数中的
矩形函数rectangle()等图形函数的应用
3.二维数组的应用
4.按键控制
5.全局变量
四、本人实现项目的过程与步骤
1.画出项目流程图(如上图)
2.写出主函数的整个运行过程
3.整理函数运行过程中所需要的函数及定义
如:(1).矩形图形函数rectangle()
(2).定义蛇和实物的二维数组结构体struct Snake{
int x[N]; int y[N]; int node; int direction;
int life;
}snake;
(3).按键定义
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
C语言贪吃蛇实验报告
C语言程序设计报告题目:贪吃蛇游戏的程序设计
院系:西语学院英语教育6班
姓名:
学号:
1.1题目:
设计贪吃蛇小游戏
1.2题目的要求:
玩家通过键盘控制蛇在地图上寻找食物,蛇吃下食物,可以加分,碰到四壁游戏结束。
1.3设计的步骤:
分析设计题目的要求,即需求分析。
总体设计,确定所需模块及模块间调用关系,定义系统中使用的数据类型。
详细设计,确定每个模块的功能,绘制主要函数的流程图。
编写程序代码,调试程序使其能正确运行。要求书写规范,注意采用缩进格式。
函数名、变量名要见文晓意,注释要简而不失、详而不缀。设计完成的软件要便于操作和使用。
程序测试,发现程序中存在的错误并改正。
完成报告。
2详细设计说明
2.1课程设计的要求:
通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。
收集资料,分析课题,分解问题,形成总体设计思路;
对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进
行具体介绍;
上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并
且能正常运行;
完成课程设计报告。
2.2程序的功能:
贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。
2.3课程设计的思想:
程序关键在于表示蛇的图形及蛇的移动。用一个小圆点来表示蛇的一节身体,身体每长一节,增加一个圆点,蛇头用四节来表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,如果按与蛇运动方向相反的方向键,此游戏就会暂停,再按想前的方向键才能继续游戏,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇
C语言课程设计报告——贪吃蛇源程序
C 语言课程设计
(小游戏贪吃蛇的程序设计报告)
设计人:
班级:
201 年月号目录
一:概述1:研究背景及意义2:设计的任务与需要知识点3:具体完成设计内容二:需求分析1:功能需求
2:操作方法三:总体设计1:模块划分2:数据结构设计四:详细设计1:主空摸块设计2:绘制游戏界面3:游戏的具体过程4:游戏的结束处理5:显示排行榜信息模块五:程序的调试与测试1:动画与音乐同步2:蛇的运行
3:终止程序六:结论七::结束语八:程序清单九:参考文献
概述
本课程设计以软件工程方法为指导,采用了结构化,模块化的程序设计方法,以C 语言技术为基础,使用Turbo C++3.0 为主要开发工具,对贪吃蛇游戏进行了需求分析,总体设计,详细设计,最终完成系统的实现与测试。
1.1研究的背景及意义随着社会的发展,人们生活的节奏日益加快,越来越多的人加入了全球化的世界。人们不再拘泥与一小块天地,加班,出差成了现代人不可避
免的公务。而此时一款可以随时随地娱乐的游戏成为了人们的需要。此次课程设计完成的贪吃蛇小游戏,正是为了满足上述需求而设计出来的。贪吃蛇游戏虽小,却设计诸多的知识点。通过开发贪吃蛇游戏系统,可使读者初步了解使用软件工程的和那个发,技术和工具开发软件的过程,进一步掌握结构化,模块化的程序设计方法和步骤,进一步掌握总体数据结构设计,模块划分方法,掌握局部变量,全局变量,结构体,共用体,数组,指针,文件等数据结构的使用方法,掌握图形,声音,随机数等多种库函数的使用方法,学习动画,音乐,窗口,菜单,键盘等多项编程技术,进一步学会软件调试,测试,组装等软件测试方法,为后续课程的学习和将来实际软件开发打下坚实的基础。
贪吃蛇C语言课程设计报告
贪吃蛇游戏设计
姓名:**
学号: ********
完成日期:月日
一、设计目的
贪吃蛇游戏程序功能的实现主要是建立在二维数组和图形界面的应用上,通过编写游戏程序能够熟悉掌握相关数组和图形函数的运用,提高编程水平,增加编程的兴趣
二、总体设计
主函数
↓
图形驱动Init 画界面DrawK 游戏具体过程GamePlay 图形结束Close
↓
游戏结束GameOver 输出成绩PrScore
三、详细设计(项目成员及分工、模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)
①主函数main():
定义使用的常数,全局变量及函数原型说明,并调用Init()函数初始化图形系统;然后调用DrawK()函数画界面,调用GamePlay()函数实现游戏的具体过程,游戏结束后调用Close()函数关闭图形系统结束程序。
②画界面函数DrawK():
主界面是一个密封的围墙,用两个循环语句分别在水平方向和垂直方向输出连续的宽度和高度均为10个单位的矩形小方块,设置成淡青色,背景颜色为黑色。
③游戏具体过程函数GamePlay():
算法过程:
a.设置初始值。为防止食物出现在一个位置上,要设置随机数发生器,真正产生随机数。初始时,蛇只有蛇头,设定一个开始方向;
b.循环执行,直到按Esc键退出;
c.没有按键的情况下,循环执行。
如果没有食物,随机出现食物;食物的随机出现要确保它的位置在10的倍数位置上,因为蛇的坐标都是以10为模的;如果有食物,则显示食物,蛇移动身体,根据蛇的方向改变坐标值,并判断蛇是否撞到了墙或自己吃到了自己,如果出现这两种情况之一,则蛇死;调用游戏结束函数GamePlay(),结束本次游
c语言贪吃蛇课程设计报告
C语言课程设计报告
贪
吃
蛇
专业
学生姓名
班级
学号
完成日期
一、游戏规则需求
1、在打开程序后,出现选择界面,里面包含难度选择,其中难度选择能够使程序出现相应
的游戏难度。
2、开始游戏后,W A S D键控制贪吃蛇的移动方向。
3、当贪吃蛇向一个方向移动时,不能立刻向反方向移动。
4、贪吃蛇撞到的自己的身体或者撞到墙时,游戏结束,并输出“GAME OVER!”。
5、贪吃蛇吃到一个食物后,出现白色闪烁一次,身体随之增加一个单位长度。
二、所需数据结构分析
1、所需函数模块
void begin(); //登陆界面
void start(); //鼠标移动事件
void init(); // 初始化游戏
void setfoodcrd(); // 设置食物要出现的坐标
void showfood(); // 在相应的坐标画出食物
void snakemove(); // 移动蛇,实际就是改变蛇各节的坐标
void judgeslod(); // 判断蛇是否撞墙或者撞到自己
void judgesef(); // 判断蛇是否吃到食物了
void showsnake(); // 在屏幕上画出蛇
void changeskdir(); // 接受用户输入,改变蛇的前进方向
void gameover(); // 游戏结束
2、蛇及食物数据结构
typedef struct // 定义一个结构体表示坐标
{
int x;
int y;
}COOR;
struct FOOD // 定义结构体,来存储食物的相关信息
{COOR crd; // 食物出现的坐标
c贪吃蛇游戏课程设计
c 贪吃蛇游戏课程设计
一、课程目标
知识目标:
1. 学生能理解并掌握C语言的基本语法和编程逻辑。
2. 学生能运用C语言编写简单的贪吃蛇游戏,包括游戏界面显示、蛇的移动、食物的生成和得分功能。
3. 学生了解并掌握结构体、数组、函数等C语言核心概念在游戏编程中的应用。
技能目标:
1. 学生通过编写贪吃蛇游戏,提高逻辑思维和问题解决能力。
2. 学生能够运用C语言进行程序设计和调试,培养编程实践能力。
3. 学生能够自主查找并利用相关资料,提高信息检索和自主学习能力。
情感态度价值观目标:
1. 学生在编程过程中,培养耐心和细心的品质,增强面对困难的勇气和毅力。
2. 学生通过团队协作,培养沟通和合作意识,提高团队协作能力。
3. 学生在完成游戏项目的过程中,激发对编程和计算机科学的兴趣,树立学习信心。
课程性质:本课程为C语言编程实践课,以贪吃蛇游戏为载体,让学生在实际编程过程中掌握C语言的基本知识和技能。
学生特点:学生处于初中阶段,对计算机编程有一定的好奇心,但编程基础薄弱,需要通过具体实例来激发学习兴趣。
教学要求:教师需关注学生的个体差异,提供个性化的指导,帮助学生掌握C 语言编程技能,并注重培养学生的学习兴趣和情感态度。在教学过程中,将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容
1. C语言基础知识回顾:变量、数据类型、运算符、控制结构(循环和条件语句)。
2. 函数:介绍函数定义、调用、参数传递和返回值,强调模块化编程的重要性。
3. 结构体:讲解结构体的定义和使用,以及如何用结构体表示贪吃蛇和食物。
贪吃蛇游戏C程序设计报告
目录
一.设计要求 (2)
二.设计的作用、目的 (2)
三.课题分析 (2)
1.贪吃蛇游戏功能分析 (2)
2.游戏界面分析 (3)
3.设计思路分析 (3)
四.设计的具体实现 (3)
1.系统组成模块结构及功能 (3)
(1)函数定义 (3)
(2)主函数main( ) (4)
(3)画界面函数DrawK( ) (5)
(4)游戏具体过程函数GamePlay() (6)
(5)游戏结束函数GameOver() (9)
2.系统程序结构及流程图 (10)
3.重要函数介绍 (12)
4.程序代码编写及注释 (14)
5.软件调试问题分析及解决方法 (20)
6.软件运行结果 (20)
五.心得体会及建议 (22)
六.参考文献 (23)
贪吃蛇游戏C程序设计报告
一.设计要求
通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。
(1).收集资料,分析课题,分解问题,形成总体设计思路;
(2).深入分析各个小问题,列出大纲,编写各部分程序模块;
(3).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍;
(4).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行;
(5).完成课程设计报告,并进行答辩。
二.设计的作用、目的
C语言是一种易学易懂的通用程序设计语言,由于它具有功能性强,运用简洁,灵活兼有高级语言与低级语言的优点,以及“目标程序效率高”可移植性和能在各种系统上普遍实现等特点使它成为当今世界上的主流程序设计语言之一,同时被选作目前全世界广泛应用,同时也是大学生必修的科目。作为当代的大学生要很好的利用它,学好一门设计语言,实现学以至用。
c贪吃蛇程序课程设计
c 贪吃蛇程序课程设计
一、课程目标
知识目标:
1. 让学生理解贪吃蛇游戏的原理和基本算法。
2. 使学生掌握运用编程语言(如Python)编写简单的贪吃蛇程序。
3. 帮助学生掌握程序中的循环、条件判断和变量等基本概念。
技能目标:
1. 培养学生运用编程解决问题的能力,提高逻辑思维和动手实践能力。
2. 培养学生团队合作意识,学会与他人共同分析问题、解决问题。
情感态度价值观目标:
1. 激发学生对计算机编程的兴趣,培养主动探索和创新的意识。
2. 培养学生面对困难时勇于尝试、不断调整心态,形成积极向上的学习态度。课程性质:本课程为信息技术课程,结合实际操作,注重培养学生的动手能力和逻辑思维能力。
学生特点:六年级学生具备一定的计算机操作能力,对编程有一定的好奇心,但注意力容易分散,需要结合实际案例激发学习兴趣。
教学要求:通过讲解、演示、实践相结合的方式,让学生在掌握基本知识的同时,提高编程实践能力。将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容
1. 理论知识:
- 简介贪吃蛇游戏的起源和发展。
- 讲解贪吃蛇程序的基本原理,包括游戏规则、程序结构等。
- 介绍编程语言(如Python)的基本语法和编程环境。
2. 实践操作:
- 编写简单的贪吃蛇程序,实现蛇的移动、食物的生成等功能。
- 学习使用循环、条件判断和变量等编程元素,优化贪吃蛇程序。
- 引导学生通过团队协作,共同完成贪吃蛇程序的设计与调试。
3. 教学大纲:
- 第一课时:介绍贪吃蛇游戏及编程语言,让学生了解课程内容。
- 第二课时:讲解贪吃蛇程序的基本原理,引导学生学习编程语法。
C语言贪吃蛇实验报告
C语言程序设计实训报告
姓名
专业
班级
指导教师
二011 年 7 月 14 日
目录
1实训目的和要求 (1)
1.1实训目的和任务 (1)
1.2实训要求 (1)
2实训任务内容 (1)
2.1游戏规则 (1)
2.2流程设计 (2)
3软件使用说明 (3)
3.1编辑程序主要软件 (3)
3.2编辑程序辅助软件 (3)
3.3程序使用过程 (3)
3.3.1贪吃蛇进入 (3)
3.3.2贪吃蛇的玩法 (4)
3.3.3贪吃蛇的结束 (4)
4实训心得和体会 (5)
4.1实训的心得 (5)
4.2实训的体会 (5)
参考文献 (6)
附录:部分程序清单 (7)
1实训目的和要求
1.1 实训目的和任务
1. 巩固和加深学生对C语言课程的基本知识的理解和掌握
2. 掌握C语言编程和程序调试的基本技能
3. 利用C语言进行基本的软件设计
4. 掌握书写程序设计说明文档的能力
5. 提高运用C语言解决实际问题的能力
1.2 实训要求
1. 分析实训题目的要求
2. 写出详细设计说明
3. 编写程序代码,调试程序使其能正确运行
4. 设计完成的软件要便于操作和使用
4. 设计完成后提交实训报告
2实训任务内容
2.1 游戏规则
通过一个学期对C语言程序设计的学习,经过实训,完善我们对C语言学习的漏洞和未学会的知识点,更加熟练的掌握C语言程序设计,锻炼我们独立自主设计程序编辑代码的能力,通过设计出来的程序,提高我们对C语言学习的兴趣,玩家通过键盘控制蛇在地图上寻找食物,蛇吃蛇食物,可以加分,碰到四壁游戏结束。
2.2流程设计
贪吃蛇流程图如图1所示
图1贪吃蛇流程图贪吃蛇运行说明图如图2所示
c语言程序贪吃蛇课程设计报告
高级语言程序设计
课程设计报告
Experiment Designing reporter
课程名称:高级语言程序设计
英文名称 : C Program Experiment Designing
专业:自动化 111
学号: XXX
姓名: XXX
指导教师: XXX
日期: 2012 年 6月 17日至 2011 年6 月 20 日
山东工商学院信电学院
山东工商学院信电学院自动111班第一组“贪吃蛇课程设计报告“一:课程设计内容
程序功能介绍
贪吃蛇游戏是一个经典小游戏,深受众多玩家喜爱,其规则是:一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。此游戏不仅能锻炼人的思维敏捷性,而且还可以提高玩家的逻辑判断能力。
设计思路
我们小组称设计本次课题——贪吃蛇的思路为“贪快速上手贪吃蛇三步曲”:
第一步:
寻找到一个真正可以运行的已用C编好的贪吃蛇。
因为我们毕竟从未看到过用C编游戏的程序,让我们两手一抹黑的开始编写是有一定的困难的,如果我们自己找一个已经设计好的程序,以此为跳板实现我们想要达到的效果,那么肯定是高效的。所以我们组统一决定,去寻找一个可以运行的C编译的贪吃蛇。
第二步:
运行游戏并了解游戏程序。
我们认为,只有你运行并了解一个游戏,才能知道游戏里需要什么样的改进和创新,如果你自己本身就没玩过这个游戏,那么你就是再有技术,你也永远改进和改编不了一个游戏,因为你根本不知道你在干什么。
C语言“贪吃蛇”程序设计报告
山东交通学院
C语言课程设计
贪吃蛇游戏编程
院(系)别信息工程系
班级
学号
姓名
指导教师
时间2011-03-28—2011-04-01
课程设计任务书
题目贪吃蛇游戏编程
系 (部) 信息工程系
专业
班级
学生姓名
学号
03 月 28 日至 04 月 01 日共 1 周
指导教师(签字)
系主任(签字)
年月日
成绩评定表
目录
一.摘要 (06)
.
二.题目要求 (07)
三.设计思想 (07)
四.数据结构设计及用法说明 (07)
五.程序描述 (08)
六.程序流程图 (09)
七.程序源代码及注释 (11)
八.运行结果 (23)
九.课程设计总结 (25)
十.参考文献 (26)
5
一.摘要:
食いしん坊な蛇ゲームは1つのすばらしくて小さいゲームで、当設計は3つの等級に分けます。1匹の蛇は閉鎖的な塀の中で、塀の中で無作為の出現の1つの食品、キーボードの4つのカーソルキーによってを通じて(通って)上下左右の4つの方向のモバイルに蛇を制御して、スネークヘッドは食品をぶつかって倒して、食品は食べてしまわれて、蛇の体の長さの1節(つ)、同時に等級は1のために1分計算して、等級は2のために2分計算して、等級は3のために3分計算します。引き続いてまた食品が現れて、蛇が食べにくることを待って、もし蛇はモバイル中で壁あるいは体の交差するスネークヘッドにぶつかって自分の体のゲームオーバーをぶつかって倒すならば。
索引のキーワー:
ド:食いしん坊な蛇プログラミングします
6
二.题目要求
A 用键盘的方向键控制蛇的上下左右移动。
B 游戏分为三种难度,SLUG为慢速,每吃一朵花得1分;WORM
贪吃蛇专业课程设计方案报告
目录
1.课程设计目标 (3)
2.课程设计任务和要求 (3)
2.1课程设计内容 (3)
2.2课程设计要求 (3)
2.3课程设计环境 (3)
3.课程设计方案 (3)
3.1方案论证 (3)
3.2程序整体设计说明 (3)
3.3设计思绪 (4)
3.4设计总体步骤图 (4)
3.5设计具体实现 (5)
4.程序测试 (8)
4.1测试内容和结果 (8)
4.2程序运行效果图 (9)
5.课程设计总结 (10)
6.参考文件 (11)
附录源程序 (11)
1.课程设计目标:
●复习、巩固才C、C++基础知识,深入加深对VC技术了解和掌握;
●课程设计为学生提供了一个既动手又动脑,独立实践机会,将书本
上理论知识和实际有机结合起来,锻炼学生分析处理实际问题能
力。
●培养学生在项目开发中团体合作精神、创新意识及能力
2.课程设计任务和要求
2.1 课程设计内容
贪吃蛇游戏开发,首先它能够为大家提供一个目前比较流行休闲小游戏。贪吃蛇是家喻户晓益智类小游戏,选择这个题目一是为了将自己所学知识加以利用,二是一直以来贪吃蛇这个游戏就深深地吸引着大家,它制作方法对于很多同学而言全部是很神秘。所以我们期望经过这学期所学知识把它剖析开来,真真正正了解它本质和精髓。在这次学习中我们将从实践和实际项目中提升自己编程能力。所以决定选择这个题目作为VC课程设计。
最终一部分就是游戏模块划分,依据分析,贪吃蛇这个程序一共要实现以下多个功效,包含游戏方面开始游戏、暂停游戏和停止游戏,游戏设置(蛇颜色、食物颜色操作说明等)和积分。
2.2课程设计要求
●对系统进行功效模块分析、控制模块分析正确,符合课题要求,实
C#贪吃蛇课程设计报告
基于VC#.NET的
贪吃蛇游戏的
开发与设计
姓名:***
学号:************
班级:软件081班
指导教师:***
完成日期:2011-6-24
目录
1.实验目的 (2)
2.实验任务与要求 (2)
2.1实验内容 (2)
2.2实验要求 (2)
2.3实验环境 (2)
3.设计方案 (2)
3.1程序功能 (2)
3.2设计思想 (2)
3.3设计总体流程图 (2)
3.4设计的具体实现 (3)
4.程序测试 (7)
4.1测试内容与结果 (7)
4.2程序运行效果图 (7)
5.实验总结 (9)
参考文献 (10)
附录 (10)
附录A:主要源程序 (10)
1.实验目的
通过C#课程设计,使学生能将学到的面向对象的程序设计思想应用到具体的工作和学习中,加深对类与对象的理解,要求学生能够对现实生活中许多具体的事物抽象出类,并掌握继承与派生,基类、虚方法和抽象方法和多态性的概念。
通过这次课程设计掌握《C#语言程序设计》的编程思想,为后续课程打下基础。
2.实验任务与要求
2.1实验内容
编写一个C#GUI版小游戏程序
2.2实验要求
编写C#语言程序实现贪吃蛇游戏。一条蛇在密闭的围墙内,在围墙内随机出现多个食物,通过按键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被蛇吃掉,时蛇的身体长一节,同时计1分,接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。并实现多人一起玩。
2.3实验环境
Windows XP, Microsoft Visual Studio 2010
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4 具体游戏实现,包括蛇撞到自己和围墙都将使游戏结束,判断吃豆等,其中还包括根据蛇的长度来进行游戏难度的改变。
5 具体键盘游戏操作运用到Windows消息响应中的WM_KEYDOWN,用OnKeyDown()来响应玩家的实际操作。
pDC->SelectObject(pOldBrush);
pDC->Rectangle(19,19,501,501);
oninit();
}
Step 7对OnTime()的添加代码
void CSNAKEView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
for(int i=0;i<=snake[0].l-1;i++)
pDC->Rectangle(snake[i].x*20,snake[i].y*20,(snake[i].x+1)*20,(snake[i].y+1)*20);
pDC->SelectObject(DrawBrush);
}
代码说明:
利用Windows给我们提供的CDC类来进行画图,我们首先用一个指向CDC类的指针去接受与该窗口相关联的DC句柄,然后用定义画刷一个DrawBrush对象,并且用RGB(100,100,100)来给画刷初始化颜色。并且用SelectObject(&DrawBrush);函数把对象画刷选入到设备描述表中,用for循环依次把贪吃蛇的3个节点画出来。
CString str;
str.Format("%d,%d",point.x,point.y);
AfxMessageBox(str);
CView::OnRButtonDown(nFlags, point);
CView::OnRButtonDown(nFlags, point);
CView::OnRButtonDown(nFlags, point);
CBrush* pOldBrush = pDC->SelectObject(&backBrush);
CRect rect;
pDC->GetClipBox(&rect);
pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(),PATCOPY);
所以我们要用这个函数来进行贪吃蛇的初始化工作。
再者还要添加一个成员函数oninit()进行贪吃蛇外观的初始化
控件的设计
再者是设计游戏的一些控件来控制“游戏开始”“游戏结束”和“游戏暂停”。
我们可以点击“工作空间”的“ResourceView”进行控件的具体设计,这里我们在Menu文件夹中把“IDR_MAINFRAME”中默认的控件全部删除
食物默认为1无0有当然我更加喜欢0无1有
Step 2对OnKeyDown()具体添加代码
void CSNAKEView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
case VK_RIGHT:if(Snake[0].direct!=3)Snake[0].direct=4;break; }
CView::OnKeyDown(nChar, nRepCnt, nFlags);
CView::OnKeyDown(nChar, nRepCnt, nFlags);
}
代码说明:
此处控件的设计是“可见即可得”的控件操作
成功设置ID之后我们分别右键
各项属性进行消息响应处理函数的生成
第二部分
具体实现游戏、
Step 1
首先我们在文件开头处分别定义蛇和食物的全局变量
struct Snake
{
int x,y;
int len;
int direct;
}Snake[50];
struct Food
AfxMessageBox("退出游戏...");
exit 0;
}
void CSNAKEView::OnContinue()
{
// TODO: Add your command handler code here
SetTimer(1,10,NULL);
}
Step 6对OnDraw()的添加代码
OnDraw()函数众所周知视图类中的输出.视图类的输出基本上都是在视图类的OnDraw函数来自百度文库处理的,系统会准备好入参,然后调用OnDraw函数
CDC *pDC=GetDC();
CString soure;
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);
4 数组
5游戏图形的实现用CDC类实现。
关键字:CViewShake MFC 函数
1.贪吃蛇开发设计思想
1 定义蛇类和食物类,初始化贪吃蛇各项成员变量,包括图像的出现在屏幕的初始位置,长度,以及蛇的行走方向。食物类的定义包括出现的初始位置,以及食物是否被吃掉的判断。
2 用数组初始化长度为3的贪吃蛇,并且默认食物未出现
2.系统功能及系统设计介绍
详细设计:
第一部分
首先在已有工程下的“ClassView”中右键CView类添加以下Windows信息
1 WM_KEYDOWN
2 WM_RBUTTONDOWN
3 WM_TIMER
再右键CView类选择“ADD Virtual Funciton”选OnInitialUpdate()
{
// TODO: Add your command handler code here
KillTimer(1);
AfxMessageBox("暂停游戏...");
}
void CSNAKEView::OnExit()
{
// TODO: Add your command handler code here
OnInitialUpdate()的功能如下:
视图窗口完全建立后第一个被框架调用的函数。框架在第一次调用OnDraw前会调用OnInitialUpdate,因此OnInitialUpdate是设置滚动视图的逻辑尺寸和映射模式的最合适的地方。
时间上,两者先后顺序不同,构造函数生成本类的对象,但没有产生窗口,OnCreate后窗口产生,然后才是视图的OnInitialUpDate,一般在这里对视图的显示做初始化。简单点,就是ONCREATE只是产生VIEW的基本结构和变量而在OnInitialUpDate()中,主要初始化视图中控件等。对各个变量进行初始化操作
Step 5控件添加代码
void CSNAKEView::OnStart()
{
// TODO: Add your command handler code here
SetTimer(1,3000,NULL);
AfxMessageBox("3秒后开始游戏!");
}
void CSNAKEView::OnPause()
右键其中的标题栏,点击属性,会得到一个菜单栏标题,我们分别建立1个菜单栏标题。这里我们分别建“游戏”。
点击并且在已有控件中的列表中点击属性,进行“菜单项目属性”的设置。我们本别建立的属性“标明”与对应的ID有
游戏开始IDM_START
游戏暂停IDM_PAUSE
游戏继续IDM_CONTINUE
游戏退出IDM_EXIT
pDC->Rectangle(Snake[Snake[0].len-1].x*20,Snake[Snake[0].len-1].y*20,(Snake[Snake[0].len-1].x+1)*20,(Snake[Snake[0].len-1].y+1)*20);
{
int x;
int y;
int isfood;
}Food;
再者
void CSNAKEView::OnInitialUpdate()
{
CView::OnInitialUpdate();
Snake[0].x=10;
Snake[0].y=10;
Snake[1].x=11;
Snake[1].y=10;
Snake[2].x=12;
{
KillTimer(1);
AfxMessageBox(soure);
// s=0;
}
//蛇身相撞判断
if(Snake[0].len>3)
for(int sn=Snake[0].len-1;sn>0;sn--)
{
if(Snake[0].x*20==Snake[sn].x*20&&Snake[0].y*20==Snake[sn].y*20)
Snake[2].y=10;
Snake[0].direct=3;
Snake[0].len=3;
Food.isfood=1;
// TODO: Add your specialized code here and/or call the base class
}
代码说明:
初始化贪吃蛇起初有3个节点,长度为3,起始坐标;
if(Snake[0].len==9)SetTimer(1,100,NULL);
soure.Format("得分:%d!",(Snake[0].len-3)*10);
//撞界判断
if(Snake[0].x*20<=37||Snake[0].y*20<=37||Snake[0].x*20>=462||Snake[0].y*20>=462)
中南大学
本科生课程设计(实践)任务书、设计报告
(C++程序设计)
题 目
贪吃蛇
学生姓名
张华强
指导教师
曹岳辉
学 院
土木工程学院
专业班级
土建1221
学生学号
1208122119
计算机基础教学实验中心
2013年7月1日
贪吃蛇
内容:
1CView类中的消息响应
2 控件的消息响应
3 基于CView类内的具体游戏实现
void CSNAKEView::OnDraw(CDC* pDC)
{
CSNAKEDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CBrush backBrush(RGB(100,100,0));
}
这个函数功能是:用鼠标右键屏幕,就会马上显示当前位置的坐标信息。
Step 4
void CSNAKEView::oninit()
{
CDC *pDC=GetDC();
CBrush DrawBrush=(RGB(100,100,100));
CBrush *Drawbrush=pDC->SelectObject(&DrawBrush);
switch(nChar)
{
case VK_UP:if(Snake[0].direct!=2)Snake[0].direct=1;break;
case VK_DOWN:if(Snake[0].direct!=1)Snake[0].direct=2;break;
case VK_LEFT:if(Snake[0].direct!=4)Snake[0].direct=3;break;
Step 3对OnRButtonDown()具体添加代码
void CSNAKEView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
// TODO: Add your message handler code here and/or call default
{
KillTimer(1);
AfxMessageBox(soure);
// s=0;
}
}
///////////////////////////////////////////////////////////////////////////
pDC->SelectStockObject(WHITE_PEN);
Snake[0]代表的是蛇头,我们对蛇头的方向Snake[0].direct进行判断。
case VK_UP:if(Snake[0].direct!=2)Snake[0].direct=1;break;
意思就是当Snake[0].direct的方向此时并不等于“下”的时候,才能做出“上”的操作动作,否则则忽略用户“向上”的操作按键效果