C语言贪吃蛇实验报告

合集下载

c语言程序贪吃蛇课程设计报告范文

c语言程序贪吃蛇课程设计报告范文

高级语言程序设计课程设计报告Experiment Designing reporter课程名称:高级语言程序设计英文名称 : C Program Experiment Designing专业:自动化 111学号: XXX姓名: XXX指导教师: XXX日期: 2012 年 6月 17日至 2011 年6 月 20 日山东工商学院信电学院山东工商学院信电学院自动111班第一组“贪吃蛇课程设计报告“一:课程设计内容程序功能介绍贪吃蛇游戏是一个经典小游戏,深受众多玩家喜爱,其规则是:一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。

此游戏不仅能锻炼人的思维敏捷性,而且还可以提高玩家的逻辑判断能力。

设计思路我们小组称设计本次课题——贪吃蛇的思路为“贪快速上手贪吃蛇三步曲”:第一步:寻找到一个真正可以运行的已用C编好的贪吃蛇。

因为我们毕竟从未看到过用C编游戏的程序,让我们两手一抹黑的开始编写是有一定的困难的,如果我们自己找一个已经设计好的程序,以此为跳板实现我们想要达到的效果,那么肯定是高效的。

所以我们组统一决定,去寻找一个可以运行的C编译的贪吃蛇。

第二步:运行游戏并了解游戏程序。

我们认为,只有你运行并了解一个游戏,才能知道游戏里需要什么样的改进和创新,如果你自己本身就没玩过这个游戏,那么你就是再有技术,你也永远改进和改编不了一个游戏,因为你根本不知道你在干什么。

同样重要的是了解游戏程序。

因为只有看懂了程序,才能实现对他的改编,才能游刃有余。

第三步:寻找模块并分类,而后进行改编。

寻找到你想要改变的游戏内容的控制模块,比如,我想要增加一堵墙,那第一页共十六页自动化 111么就应该找到void DrawK(void){setcolor(11);setlinestyle(SOLID_LINE,0,THICK_WIDTH);for(i=200;i<=500;i+=10)rectangle(i,200,i+10,209);}然后要找到:改变蛇初始长度、颜色、初始位置的模块,改变苹果出现位置的模块,让蛇见墙死的模块,让蛇吃苹果加长的模块……….并且进行分类,这样下次再想实现某个目标时,可以一目了然的进行改编。

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#define ESC 0x011b4.定义各函数,分配功能void Init(void);图形驱动void Close(void);图形结束void DrawK(void);开始画面void GameOver(void);游戏结束void GamePlay(void);游戏过程void PrScore(void);输出成绩5.各函数的编辑开始画面函数(画围墙)游戏过程函数(蛇移动的算法蛇吃食物的算法按键算法等)游戏结束及成绩输出函数6.定义与各函数的整合嵌入7.编译调试8.对程序的扩展功能的调整9.完成实验报告五、个人遇到的困难与获得的主要成果(一)遇到的主要主要困难1.程序结构的理解由于长时间对C语言与数据结构没有接触,使我们对这些有一些相对陌生,主要是二维数组的引用以及循环的控制方面,如:(1) for(i=snake.node-1;i>0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/{snake.x[i]=snake.x[i-1];snake.y[i]=snake.y[i-1];}(2)for(i=3;i<snake.node;i++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/ {if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]) {GameOver();/*显示失败*/snake.life=1;break;}}2.graphics.h图形库函数的陌生第一次接触graphics.h库函数,对其一无所知通过查阅资料找到graphics.h库函数中几个关键函数的功能及用法。

C#实验报告(贪吃蛇游戏)

C#实验报告(贪吃蛇游戏)

《C#程序设计及应用教程》课程设计报告设计题目贪吃蛇游戏专业2011级软件工程班级2011级软件工程姓名学号*********完成日期2013-06-24目录1. 问题描述………………………………………………2. 系统设计………………………………………………3. 数据结构与算法描述…………………………………4. 测试结果与分析………………………………………5. 总结…………………………………………………6. 参考文献………………………………………………附录程序源代码…………………………………………(报告正文部分):课程设计题目1. 问题描述我设计的的游戏首先在主界面选择游戏难度,接着进行游戏,在游戏过程中贪吃蛇不停地吃掉随机产生的食物,蛇身增长,直到蛇触碰到自己的身躯或边框,游戏结束特色:1.游戏可以自选难度,且蛇身长每增加2游戏可以储存游戏分数,你可以查看最高分3游戏过程中蛇的颜色,食物的颜色,分数的颜色,可以不停变换,增加视觉效果2. 系统设计2.1 设计目标C#课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基础知识的基础上,进一步加深对C#的理解和掌握;提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质;培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新 2 月异的发展形势;本次课程设计是以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,做出设计报告。

2.2 设计思想程序关键在于表示蛇的图形及蛇的移动。

用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块。

移动时必须从蛇头开始,所以蛇不可以向相反的方向移动,如果不按任意键,蛇自行在当前方向右前移,但按下有效方向键后,蛇头朝该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后节用背景色覆盖。

c语言贪吃蛇实训报告

c语言贪吃蛇实训报告

c语言贪吃蛇实训报告C语言贪吃蛇实验报告C语言程序设计实训报告姓名专业班级指导教师二011年7 月14 日11.1 1.2目录实训目的和要求 (1)实训目的和任务........................................................... .................................. 1 实训要求........................................................... .. (1)22.1 2.2实训任务内容 (1)游戏规则........................................................... .................................................. 1 流程设计........................................................... .. (2)33.1 3.2 3.3软件使用说明 (3)编辑程序主要软件........................................................... ............................. 3 编辑程序辅助软件........................................................... ............................. 3 程序使用过程........................................................... ........................................ 3 3.3.1 3.3.2 3.3.3贪吃蛇进入........................................................... ............................. 3 贪吃蛇的玩法........................................................... ........................ 4 贪吃蛇的结束........................................................... (4)44.1 4.2实训心得和体会 (5)实训的心得........................................................... ............................................. 5 实训的体会........................................................... (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语言学习的兴趣,玩家通过键盘控制蛇在地图上寻找食物,蛇吃蛇食物,可以加分,碰到四壁游戏结束。

C语言贪吃蛇实验报告

C语言贪吃蛇实验报告

C语言程序设计实训报告姓名专业班级指导教师2011 年7月14日目录一.实训目的和要求....................................................................... 1二.实训任务内容........................................................................... 1三.详细设计说明........................................................................... 1四.软件使用说明........................................................................... 3五.实训心得与体会....................................................................... 3六.参考文献................................................................................... 5七.部分程序清单(带有详细的注释)....................................... 6八.程序结果............................................................................... 10一.实训目的和要求1.实训目的本实训是软件技术专业重要的实践性环节之一,是在学生学习完《C语言程序设计》课程后进行的一次全面的综合练习。

本实训的目的和任务:(1). 巩固和加深学生对C语言课程的基本知识的理解和掌握(2). 掌握C语言编程和程序调试的基本技能(3). 利用C语言进行基本的软件设计(4). 掌握书写程序设计说明文档的能力(5). 提高运用C语言解决实际问题的能力2.实训要求(1). 分析实训题目的要求(2). 写出详细设计说明(3). 编写程序代码,调试程序使其能正确运行(4). 设计完成的软件要便于操作和使用(5). 设计完成后提交实训报告二.实训任务内容设计贪吃蛇游戏玩家通过键盘控制蛇在地图上寻找食物,蛇吃下食物,可以加分,碰到四壁游戏结束。

关于贪吃蛇的实训报告

关于贪吃蛇的实训报告

一、实训目的本次实训旨在通过C语言编程实现贪吃蛇游戏,巩固和加深对C语言程序设计的基本知识的理解和掌握,提高编程和程序调试的基本技能,并锻炼独立自主设计程序和编辑代码的能力。

通过设计贪吃蛇游戏,进一步理解和运用结构化程序设计的思想和方法,初步掌握开发一个小型实用系统的基本方法,学会调试一个较长程序的基本方法,以及掌握书写程序设计开发文档的能力。

二、实训内容1. 游戏规则贪吃蛇游戏的基本规则如下:- 蛇在游戏区域中上下左右移动,通过键盘方向键控制。

- 每次蛇头撞到食物,蛇身增长一节,同时计10分。

- 若蛇头撞到墙壁或自身,游戏结束。

- 游戏区域大小、蛇的初始长度、食物的生成方式等参数可调整。

2. 程序设计(1)数据结构- Food结构体:用于存储食物的位置信息,包括横坐标x、纵坐标y和是否生成食物的标志yes。

```cstruct Food {int x;int y;int yes;};```- Snake结构体:用于存储蛇的位置信息、长度、移动方向和生命状态。

```cstruct Snake {int x[N];int y[N];int node;int direction;int life;};```(2)功能模块- 初始化函数:初始化游戏区域、蛇的位置、长度、方向和生命状态,以及食物的位置信息。

- 键盘输入处理函数:获取键盘输入,控制蛇的移动方向。

- 食物生成函数:根据设定规则生成食物。

- 蛇移动函数:根据蛇的移动方向和速度,更新蛇的位置信息。

- 游戏判断函数:判断蛇是否吃到食物、撞到墙壁或自身,以及游戏是否结束。

- 界面绘制函数:绘制游戏区域、蛇和食物。

三、程序实现以下为部分关键代码示例:```c// 初始化函数void init() {// 初始化游戏区域、蛇的位置、长度、方向和生命状态,以及食物的位置信息}// 键盘输入处理函数void keyInput() {// 获取键盘输入,控制蛇的移动方向}// 食物生成函数void generateFood() {// 根据设定规则生成食物}// 蛇移动函数void moveSnake() {// 根据蛇的移动方向和速度,更新蛇的位置信息}// 游戏判断函数void judgeGame() {// 判断蛇是否吃到食物、撞到墙壁或自身,以及游戏是否结束}// 界面绘制函数void draw() {// 绘制游戏区域、蛇和食物}```四、实训心得与体会1. 编程能力提升:通过本次实训,我对C语言编程和程序设计有了更深入的理解,编程能力得到了显著提升。

贪吃蛇的实训报告

贪吃蛇的实训报告

一、实训目的本次实训旨在通过设计并实现贪吃蛇游戏,巩固和加深学生对C语言程序设计的基本知识,提高学生的编程能力和实际动手操作能力。

通过实训,使学生能够熟练掌握C语言编程技巧,理解程序设计的基本思想和流程,同时培养学生的团队协作和问题解决能力。

二、实训内容1. 游戏规则贪吃蛇是一款经典的电脑游戏,玩家通过键盘控制蛇在游戏区域中移动,吃掉随机出现的食物。

蛇在吃掉食物后,长度会增加,得分增加。

如果蛇头撞到墙壁或自己的身体,游戏结束。

2. 游戏界面游戏界面由一个矩形区域组成,代表游戏区域。

蛇用一系列方块表示,食物用不同的颜色表示。

游戏开始时,蛇的长度为3,随机生成食物。

游戏过程中,蛇会根据玩家的输入移动。

3. 游戏逻辑(1)初始化:设置游戏区域大小、蛇的初始位置和方向、食物的初始位置等。

(2)游戏循环:不断检测玩家输入,更新蛇的位置,判断蛇是否吃到食物、撞到墙壁或自己的身体。

(3)游戏结束:当蛇撞到墙壁或自己的身体时,游戏结束。

4. 程序设计(1)数据结构:定义蛇、食物和游戏区域的数据结构。

(2)函数设计:设计初始化函数、移动函数、判断是否吃到食物函数、判断是否撞到墙壁或自己的身体函数等。

(3)主函数:调用相关函数,实现游戏循环。

三、实训过程1. 设计阶段首先,根据游戏规则和界面设计,确定游戏的数据结构和函数。

然后,编写程序代码,实现游戏的基本功能。

2. 编码阶段根据设计阶段的设计,使用C语言编写程序代码。

在编写过程中,注意代码的可读性和可维护性。

3. 调试阶段在编写代码过程中,不断调试程序,修复出现的错误。

调试过程中,注意观察程序运行情况,分析问题原因,并找出解决方案。

4. 测试阶段完成程序编写后,进行测试,确保程序能够正常运行。

测试过程中,注意观察游戏效果,确保游戏规则和界面设计符合预期。

四、实训成果通过本次实训,成功设计并实现了贪吃蛇游戏。

游戏运行稳定,功能完整,达到了实训目的。

五、实训心得1. 理解程序设计的基本思想和流程,掌握C语言编程技巧。

贪吃蛇综合设计报告

贪吃蛇综合设计报告

《高级语言程序设计》综合实验报告第一小组:贪吃蛇游戏一、实验环境操作系统:Windows 10编程环境:codeblocks二、实验内容与完成情况(主要介绍项目总体功能分析与说明)功能1♦功能1的文字描述移动控制台光标坐标♦功能1实现的流程图♦功能1代码功能2♦功能2的文字描述改变蛇的移动方向♦功能2实现的流程图功能2代码功能3功能3的文字描述判断蛇是否吃到食物,是,则生成新食物的坐标,得分、等级、速度和蛇的长度增加;否,则保留原食物坐标。

功能3实现的流程图功能3代码功能4♦功能4的文字描述判断蛇是否存活♦功能4实现的流程图功能4代码功能5♦功能5的文字描述显示游戏图像、得分和等级。

♦功能5代码功能6♦功能6的文字描述运行调用游戏相关的函数,储存最高分、打破记录的人和分数、进入排行榜的人数(打破前一个最高分记录才能进入排行榜)。

♦功能6实现的流程图功能6的代码功能7♦功能7的文字描述调用功能6的函数,死亡后可选择重新开始或退出游戏输出排行榜。

♦功能7实现的流程图功能7的代码功能8♦功能8的文字描述读取储存了排行榜信息的文件,并赋值给姓名和得分变量char name1[10]、int score1,在控制台界面上输出排行榜♦功能8的代码三、功能测试1、游戏开始界面测试结果:用户可以输入自己喜欢的英文名字。

输入完成后按回车键可以看到游戏的操作指南。

2、蛇的移动、食物、分数记录测试结果:游戏开始,蛇头“@”和食物“*”出现,可以用“WSAD”来控制蛇上下左右移动,成功吃到食物蛇身变长并且每吃到一个食物右侧记录的等级和得分会增加一点。

3、蛇的死亡,最高纪录和排行榜显示测试结果:蛇死亡后界面自动弹出“Game over”并且显示出玩家在上一局的分数;接着玩家可以选择“y”或“n”来决定是否重玩游戏,不重玩游戏则输出排行榜并按任意键结束。

四、项目总结(其中的错误和解决方案)1闪屏。

游戏开始后界面上的所有字符都在闪烁,并且频率越来越快。

C语言课程设计报告——贪吃蛇源程序

C语言课程设计报告——贪吃蛇源程序

C 语言课程设计(小游戏贪吃蛇得程序设计报告)设计人:班级:201年月号目录一:概述1:研究背景及意义2:设计得任务与需要知识点3:具体完成设计内容二:需求分析1:功能需求2:操作方法三:总体设计1:模块划分2:数据结构设计四:详细设计1:主空摸块设计2:绘制游戏界面3:游戏得具体过程4:游戏得结束处理5:显示排行榜信息模块五:程序得调试与测试1:动画与音乐同步2:蛇得运行3:终止程序六:结论七::结束语八:程序清单九:参考文献一. 概述本课程设计以软件工程方法为指导,采用了结构化,模块化得程序设计方法,以C语言技术为基础,使用TurboC++3、0为主要开发工具,对贪吃蛇游戏进行了需求分析,总体设计,详细设计,最终完成系统得实现与测试。

1、1 研究得背景及意义随着社会得发展,人们生活得节奏日益加快,越来越多得人加入了全球化得世界。

人们不再拘泥与一小块天地,加班,出差成了现代人不可避免得公务。

而此时一款可以随时随地娱乐得游戏成为了人们得需要。

此次课程设计完成得贪吃蛇小游戏,正就是为了满足上述需求而设计出来得。

贪吃蛇游戏虽小,却设计诸多得知识点。

通过开发贪吃蛇游戏系统,可使读者初步了解使用软件工程得与那个发,技术与工具开发软件得过程,进一步掌握结构化,模块化得程序设计方法与步骤,进一步掌握总体数据结构设计,模块划分方法,掌握局部变量,全局变量,结构体,共用体,数组,指针,文件等数据结构得使用方法,掌握图形,声音,随机数等多种库函数得使用方法,学习动画,音乐,窗口,菜单,键盘等多项编程技术,进一步学会软件调试,测试,组装等软件测试方法,为后续课程得学习与将来实际软件开发打下坚实得基础。

1、2设计得任务与需要得知识点1、2、1 课程设计主要完成得任务1)、通过编写“贪吃蛇游戏”程序,掌握结构化,模块块化程序设计得思想,培养解决实际问题得能力。

2)有同步播放动画,声音效果。

3)设计好数组元素与蛇,食物得对应关系。

C语言贪吃蛇实验报告

C语言贪吃蛇实验报告

C语言程序设计报告题目:贪吃蛇游戏的程序设计院系:西语学院英语教育6班姓名:学号:1.1题目设计贪吃蛇小游戏1.2题目的要求:玩家通过键盘控制蛇在地图上寻找食物,蛇吃下食物,可以加分,碰到四壁游戏结束。

1.3设计的步骤:分析设计题目的要求,即需求分析。

总体设计,确定所需模块及模块间调用关系,定义系统中使用的数据类型。

详细设计,确定每个模块的功能,绘制主要函数的流程图。

编写程序代码,调试程序使其能正确运行。

要求书写规范,注意采用缩进格式。

函数名、变量名要见文晓意,注释要简而不失、详而不缀。

设计完成的软件要便于操作和使用。

程序测试,发现程序中存在的错误并改正。

完成报告。

2详细设计说明2.1课程设计的要求:通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。

收集资料,分析课题,分解问题,形成总体设计思路;对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍;上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行;完成课程设计报告。

2.2 程序的功能:贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10 分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。

2.3 课程设计的思想:程序关键在于表示蛇的图形及蛇的移动。

用一个小圆点来表示蛇的一节身体,身体每长一节,增加一个圆点,蛇头用四节来表示。

移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,如果按与蛇运动方向相反的方向键,此游戏就会暂停,再按想前的方向键才能继续游戏,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。

C语言贪吃蛇实验报告

C语言贪吃蛇实验报告

C语言贪吃蛇实验报告实验报告:C语言贪吃蛇游戏的实现一、引言贪吃蛇是一款非常经典的游戏,它的规则简单而有趣,对于初学者来说,实现一个贪吃蛇游戏是一个很好的练习项目。

本实验报告将介绍如何使用C语言实现一个简单的贪吃蛇游戏。

二、实验内容1.界面设计贪吃蛇游戏的界面包括游戏区域和游戏信息区。

游戏区域是以二维数组表示的地图,贪吃蛇和食物在地图上移动。

游戏信息区可以显示得分、游戏状态等信息。

2.贪吃蛇的移动贪吃蛇的移动是贪吃蛇游戏的核心部分。

贪吃蛇每次移动时,头部朝着移动的方向前进一格,身体部分跟随头部的移动。

如果吃到食物,贪吃蛇的长度会增加。

3.游戏结束判定游戏结束有两种情况:贪吃蛇撞到地图边界或者撞到自己的身体。

游戏结束后,可以显示得分信息。

三、实验过程1.设计游戏界面使用C语言的“#include <conio.h>”头文件中的一些函数,可以控制台下的光标位置,从而实现贪吃蛇游戏的界面设计。

2.实现贪吃蛇的移动首先定义了一个结构体Snake来表示贪吃蛇,结构体中包含了贪吃蛇的长度、坐标等信息。

使用动态数组保存贪吃蛇的身体坐标,每次移动时改变贪吃蛇头部的坐标,并更新贪吃蛇的位置。

3.生成食物使用rand函数生成一个随机数作为食物的坐标,在游戏区域内随机生成。

每次贪吃蛇吃到食物时,贪吃蛇的长度加1,并生成新的食物。

4.游戏结束判定在每次贪吃蛇移动时,判断贪吃蛇的头部是否撞到地图边界或者撞到自己的身体,如果是则游戏结束。

四、实验结果经过代码的实现和调试,成功完成了C语言贪吃蛇游戏的编写。

在控制台下可以看到一个游戏界面,贪吃蛇可以按照指定的方向移动,并且能够吃到食物,蛇的长度会随之增加。

当贪吃蛇撞到边界或者自己的身体时,游戏会结束,并显示得分信息。

五、实验总结通过本次实验,我深入了解了贪吃蛇游戏的实现原理,掌握了C语言的数组、结构体等基本知识,并通过实践加深了对这些知识的理解。

在实验过程中,我遇到了一些问题,比如如何设计游戏界面、如何控制贪吃蛇的移动、如何生成食物等等。

贪吃蛇程序设计报告(附C源码)

贪吃蛇程序设计报告(附C源码)

《计算机程序设计基础》课程设计题目用户管理系统学生姓名王孟学号 0909082920 指导教师郭克华学院信息科学与工程学院专业班级电气类 0829 完成时间 2009-7-1目录1.课程设计内容 (3)2.课程设计目的 (3)3.背景知识(可选项) (3)4.工具/准备工作(可选项) (4)5.设计步骤、方法等 (4)5.1. 步骤1:步骤名称(二级标题) (4)5.1.1. 步骤1.1:步骤名称(三级标题) ............................................ 错误!未定义书签。

5.2. 步骤2:步骤名称 (6)5.3. 步骤n:步骤名称 (8)6.设计结果及分析 (10)7.设计结论 (10)8.问题及心得体会 (10)9.对本设计过程及方法、手段的改进建议 (11)10.参考文献 (12)报告名称1. 课程设计内容产生一个固定大小没有边界的游戏区域,蛇从区域的中心开始,由玩家通过键盘控制蛇的运动方向,用蛇头去吃随机分布在游戏区域内的食物;蛇的运动限制在游戏区域内,游戏区域没有边界,所以蛇在区域内作循环运动;蛇的运动方向为直线运动,只走横和竖的方向,不走斜线;蛇的运动速度由游戏的难度来控制,难度越高,速度越快,游戏难度分为9个等级;蛇身体的长度从1开始每吃掉一份食物就增加一个长度;食物的出现安照随机分布的原则,蛇吃掉一份后随即在游戏区域内放一份新的食物;每吃掉一份食物得分为10*游戏的难度,游戏结束后统计全部的得分;游戏结束的条件为:在控制蛇的过程中蛇头碰到蛇的身体的任何部位;2. 课程设计目的(1)、通过c语言编程实现贪吃蛇游戏的运行。

(2)、对代码进行进一步的调试优化,以使游戏高效运行,操作化强,人性化强。

(3)、通过编程,使自己掌握C语言编程的基本方法,有独立编程的能力,并学到实战经验。

3. 背景知识(可选项)本程序主要是一个交互式的游戏程序,通过玩家的键盘上下左右键控制贪吃蛇的运动方向。

贪吃蛇代码实训心得报告

贪吃蛇代码实训心得报告

一、实训背景随着计算机技术的飞速发展,编程已经成为一项非常重要的技能。

为了提高自己的编程能力,我参加了贪吃蛇代码实训。

通过这次实训,我对贪吃蛇游戏的编程有了更深入的了解,同时也锻炼了自己的编程思维和动手能力。

二、实训目标1. 熟悉C语言的基本语法和编程规范。

2. 掌握贪吃蛇游戏的设计与实现。

3. 培养团队协作和沟通能力。

三、实训内容1. 游戏设计:确定游戏规则、界面设计、功能模块划分等。

2. 代码编写:使用C语言实现游戏逻辑、图形界面、用户交互等。

3. 调试与优化:找出并修复代码中的错误,提高游戏性能。

四、实训过程1. 游戏设计在游戏设计阶段,我们首先明确了游戏规则:玩家通过键盘控制蛇的移动,吃掉食物使蛇变长,同时避免撞到墙壁和自己的身体。

游戏界面设计简洁,以蓝色背景和白色蛇身为主,食物用红色表示。

2. 代码编写在代码编写过程中,我们采用了模块化设计,将游戏分为以下几个模块:(1)主函数:初始化游戏环境,创建窗口,设置定时器等。

(2)蛇的移动:根据键盘输入控制蛇的移动方向,更新蛇的位置。

(3)食物的生成:随机生成食物位置,并在蛇吃到食物时更新食物位置。

(4)游戏结束判断:判断蛇是否撞到墙壁或自己的身体,如果发生碰撞则游戏结束。

(5)图形界面:使用图形库绘制蛇、食物和游戏界面。

3. 调试与优化在调试过程中,我们遇到了许多问题,如蛇的移动方向相反、食物生成位置不合理等。

通过查阅资料和团队合作,我们逐一解决了这些问题。

在优化方面,我们主要关注了以下两点:(1)提高游戏性能:通过减少不必要的计算和绘制,提高游戏运行速度。

(2)优化用户体验:调整游戏难度,使游戏更具挑战性。

五、实训收获1. 编程能力得到提升:通过编写贪吃蛇游戏,我熟悉了C语言的基本语法和编程规范,提高了自己的编程能力。

2. 编程思维得到锻炼:在游戏设计过程中,我学会了如何分析问题、设计算法和实现代码。

3. 团队协作能力得到提高:在实训过程中,我与团队成员共同解决问题,学会了沟通和协作。

c 贪吃蛇实验报告

c 贪吃蛇实验报告

C 贪吃蛇实验报告1. 引言贪吃蛇是一款经典的游戏,玩家通过操纵蛇的移动,使其吃到食物并避免碰到自己的身体或墙壁。

本实验旨在通过编写一个贪吃蛇游戏的实现代码,展示基本的编程思路和方法。

2. 实验环境本实验使用Python编程语言进行实现,采用了以下工具和库: - Python 3.9.2 - Pygame 2.0.13. 实验步骤3.1 初始化游戏界面首先,我们需要创建一个窗口来显示游戏界面。

在Pygame中,可以使用pygame.display.set_mode()函数来创建一个窗口。

我们还需要定义一些常量,如窗口的大小、蛇的初始位置和速度等。

3.2 绘制蛇和食物在游戏界面中,蛇和食物是需要绘制出来的。

我们可以使用Pygame提供的绘图函数来实现。

具体步骤如下: 1. 创建一个蛇的列表,表示蛇的身体。

初始时,蛇只有一个方块。

2. 创建一个食物的坐标点,表示食物的位置。

3. 使用pygame.draw.rect()函数绘制蛇和食物的方块。

3.3 控制蛇的移动蛇的移动是通过改变蛇的身体坐标来实现的。

我们需要定义一个变量来表示蛇移动的方向,如上、下、左、右。

通过监听键盘事件,获取玩家的操作,然后改变蛇移动的方向。

3.4 更新蛇的位置蛇的位置需要不断更新,使其向当前移动方向移动一个方块的距离。

当蛇吃到食物时,蛇的身体长度增加一个方块。

具体步骤如下: 1. 根据当前移动方向,更新蛇头的坐标。

2. 将蛇头的坐标添加到蛇的身体列表中。

3. 如果蛇吃到了食物,生成一个新的食物坐标,并将蛇的身体长度增加一个方块。

3.5 判断游戏结束游戏结束的条件有两种情况:蛇碰到自己的身体或者蛇碰到墙壁。

我们需要在每次更新蛇的位置后,判断是否满足游戏结束的条件。

如果满足条件,游戏结束。

3.6 游戏循环完成以上步骤后,我们可以将整个游戏的逻辑放在一个循环中,不断更新蛇的位置、绘制游戏界面,并响应用户的操作。

直到游戏结束为止。

贪吃蛇小游戏实验报告[

贪吃蛇小游戏实验报告[

- 0 -软件设计报告设计题目: 贪吃蛇 目录一. 需求分析 二. 概要设计 三. 详细设计四. 心得体会一. 需求分析1.1关于题目 1.1.1题目要求(1)利用MicrosoftVisualC++制作一个贪吃蛇的小游戏, 要求:(2)应用MFC 单文档制作(3)能够记录游戏成绩学 院:专业班级:学生姓名:学生学号:指导教师:提交时间:成 绩:(4)可根据玩家要求设置游戏速度(级别): 初级, 中级, 高级可以根据个人喜好更换背景图片, 食物图片, 障碍物图片, 结束图片等1.1.2选题背景贪吃蛇是家喻户晓的益智类小游戏, 选择这个题目一是为了将自己的所学知识加以运用, 二是一直以来贪吃蛇这个游戏就深深地吸引着我们, 它的制作方法对于以前的我们而言都是很神秘的。

我们希望通过自己的所学知识把它剖析开来, 真真正正的了解它的本质和精髓。

虽然我们的编程能力不是很强, 但是我们有信心, 在这次学习中我们将从实践和实际的项目中提高自己的编程能力。

因此我们选定了这个题目。

1.2关于编译软件本程序采用Microsoft Visual C++6.0的英文版本进行编译。

VisualC++6.0是Microsoft公司推出的基于Windows操作系统的可视化C++编程工具, 尽管Microsoft公司推出了.NET平台的集成开发环境, 但由于其良好的界面和可操作性, 加上支持标准C/C++规范, 但仍有相当多的编程人员使用VisualC++6.0进行应用系统的开发。

- 1 -1.3关于兼容性本程序经过调试, 可以在XP系统下编译运行, 也可以在Vista下运行, 界面稍有不同, 但不影响运行结果。

二. 概要设计2.1软件主要功能设计2.1.1程序结构根据分析, 贪吃蛇这个程序一共要实现如下几个功能, 包括游戏方面开始游戏、停止游戏, 设置游戏级别(速度), 设置图片等。

具体的程序结构如下面的图1-1所示。

- 2 -图2-1 贪吃蛇结构图2.1.2程序流程根据分析后的贪吃蛇结构设计出相应的贪吃蛇流程。

C语言程序设计课程设计(论文)-贪吃蛇

C语言程序设计课程设计(论文)-贪吃蛇

C语言程序设计课程设计(论文)-贪吃蛇------------ 大学C语言程序设计课程设计(论文)题目: 贪吃蛇院(系):专业班级:学号:学生姓名:指导教师:教师职称:起止时间:课程设计(报告)任务及评语院(系): 教研室:学号学生姓名专业班级程序设计(报告)贪吃蛇题目程序设计的任务与要求:(1)掌握C语言编程的基础知识。

(2)较熟练地编写C语言应用程序。

(3)了解C语言的常用标准函数、编程技巧、异常处理。

程序(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。

设(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能计)力都有一个很大的提高。

报告(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素) 质的提高起一个积极的推动作用。

任务课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。

正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。

指导教师评语及成绩成绩: 指导教师签字:2011年 1 月 4 日辽宁工业大学 C 语言课程设计说明书(论文)目录第1章 C语言课程设计的实训目的与要求 (1)1.1 C语言课程设计目的 (1)1.2 C语言课程设计的实验环境 (1)1.3 C语言课程设计的预备知识 (1)1.4 C语言课程设计要求 .................................................. 1 第2章 C语言课程设计内容 .. (2)2.1程序功能介绍 (2)2.2程序整体设计说明 (2)2.2.1设计思路 ......................................................22.2.2数据结构设计及用法说明 ........................................32.2.4各模块的功能及程序说明 ........................................72.2.5程序结果 ......................................................82.3程序源代码及注释 (10)第3章 C语言课程设计总结 .................................................. 17 参考资料.. .................................................................20辽宁工业大学 C 语言课程设计说明书(论文)第1章 C语言课程设计的目的与要求 1.1 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为中速,每吃一朵花得2分;PYTHON为快速,每吃一朵花得3分。

C 游戏目标:操纵屏幕上那条可爱的小蛇,在黑框中不停吃花,而每吃一朵花,蛇的身体都变的更长一些,游戏的难度也会随之加大。

D 游戏终止:终止条件1——蛇头撞到墙上;终止条件2——蛇身形成一个圈,也就是蛇头碰到自身的任何一处。

贪吃蛇游戏实验报告

贪吃蛇游戏实验报告

*****************实验报告实验名称: 网络编程基础实训教程(贪吃蛇)指导教师:姓名:学号:班级:提交日期:1.实验目的通过开发一款贪吃蛇游戏程序, 熟练掌握C#编程语言、和面向对象程序设计方法, 独立完成一个游戏程序的开发。

2.实验题目使用C#编程语言, 开发一款贪吃蛇游戏, 如下图所示。

3.功能描述a)游戏场地是一片矩形区域的草坪。

b)一条蛇由蛇头和蛇身组成。

c)当游戏开始之后, 草坪中出现一颗豆和一条蛇, 并且蛇不停地移动, 蛇移动方向与蛇头一致。

d)当游戏暂停之后, 蛇停止移动。

e)当蛇移动时, 玩家使用“↑”、“↓”、“←”和“→”四个键控制蛇的移动方向。

f)当蛇头与豆的位置重合时, 豆被蛇吃掉, 同时在草坪中再生成一颗新的豆, 蛇身增加一节。

当蛇头碰到蛇身时, 则咬断蛇身, 后半部分的蛇身消失。

当蛇头碰到草坪四周时, 蛇立即毙命, 游戏结束。

4.需求分析根据功能描述可知, 贪吃蛇游戏的系统结构图如下所示。

1)定义数据字典如下:2)草坪(Lawn): 草坪是贪吃蛇游戏的场地。

豆和蛇只能存在于草坪范围之内。

草坪具有大小和颜色等属性。

蛇(Snake):在贪吃蛇游戏中, 蛇由若干节组成, 其中第一节是蛇头, 其余是蛇身。

在游戏过程中, 有且仅有一条蛇, 并且蛇在不停地移动。

如果蛇吃了豆, 则蛇生长一节。

如果蛇头碰到蛇身, 则咬断蛇身, 后半部分的蛇身消失。

如果蛇头离开草坪, 则蛇死亡游戏结束。

蛇具有长度、颜色、运动方向、每一节的位置等属性。

豆(Bean):在贪吃蛇游戏中, 豆是蛇的食物。

在游戏过程中, 有且仅有一颗豆。

如果蛇吃了豆, 则重新生成一颗豆。

豆具有位置、大小和颜色等属性。

5.设计说明根据需求分析可知, Snake的每一节都有位置和大小等属性。

而Bean也具有这两个属性。

抽象出二者的共同特征, 抽象出一般类Block, 用于描述一个块。

Block派生出Bean和SnakeBlock两个类, 其中SnakeBlock类用于描述蛇的一节。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(x==0) {
printf("\t\t"); return ; } if(y==0) { printf("\t\t\t"); return ; } if(x==16) { printf("\n"); return ; } if(y==16) { printf("\t");
7
} if(x>0&&x<16&&y>0&&y<16) {
统计游戏过程蛇吃的食物数量,计算并输出游戏成绩.
3 软打开 Microssft Visual C++ 程序,进入 Microssft Visual C++ 程序后打开文件 菜单,点机新键命令按钮,先建立一个 Win32 Console Application 工程,建立工程时可 填写工程名称和你所建工成要存放的位置,点机确定按钮,再点机一个空工程类型的控制 台程序,再点机完成,然后点机确定按钮,此时一个所要建立的工程就已经建立好,然后 再点机文件中的新建按钮,然后再建立一个 C++ Source File 文件,并填写文件名称, 然后点机确定按钮,此时所要建立的工程和文件都已建立完毕,此时您就可以把贪吃蛇游 戏的代码复制粘贴到你刚刚建立的工程和文件里面了,然后点机组建命令中的编译和组建 命令,最后点机执行命令就可进入贪吃蛇游戏中了。
printf("\n\n\n\n\n\n\t\t\t 欢迎来到【贪吃蛇】小游戏\n\n"); printf("\t\t\t 蛇身加长一段就加 10 分\n\n"); printf("\t\t 此游戏用键盘的方向键控制即可。若想退出请按 Esc 建。\n"); printf("\n\t\t\t 相反的方向的话是暂停。\n"); printf("\n\t\t\t 请按任意键进入游戏。"); getch(); } /*--------------------------------------------*/ /*------------人工画图程序--------------------*/ void drawpt(int a,int x,int y) /*利用人工绘图程序来画出蛇运动的范围*/ {
图 3 蛇吃食物蛇身变长的设计流程图
4
按方向键 的右键
则使用函数 rightmove(snake)
蛇向右运动
2.6 程序的总体设计思想
利用人工绘图法,制作美观的游戏界面. 通过随机函数产生随机数,控制游戏过程食物的出现. 定义键盘操作,控制游戏过程蛇的移动方向.
画出边界,并判断游戏是否结束.
8
for(y=16,x=0;x<17;x++) if(sna[x][y]==HEAD) return false;
for(x=0;x<16;x++) {
for(y=0;y<16;y++) {
if(max<sna[x][y]) if(sna[x][y]!=HEAD&&sna[x][y]!=FOOD) max=sna[x][y];/*这个也是求头部之后的*/
} } for(i=0;i<max;i++) {
for(x=1;x<16;x++) {
for(y=1;y<16;y++) {
if(sna[x][y]==i+1) count++;/*这个判断想了好久的*/
score=(count-3)*10;/*计算蛇的总成绩*/ } } } if(count!=max)/*判断身体部分是否连续*/ return false; return true; } /*--------------------------------------------------*/ /*-------------游戏结束显示-------------------------*/ void gameover() { system("cls"); printf("\n\n\n\n\n\n\n\n"); printf("\t\t\t\t"); printf("游戏结束\n\n"); printf("\t\t\t\t"); printf ("此次总成绩为%d 分\n\n",score); printf("\t\t\t\t"); printf ("请您再接再厉\n\n"); printf("\t\t\t"); printf("按 Esc 键退出,按任意键重新开始。\n"); } /*-------------------------------------------------*/ /*全程标记法,从尾巴开始 123456....HEAD,食物是 FOOD。*/ void marksn()
2.5 设计的流程图
总程序设计图如图 1 所示:
2
欢迎词和游戏的 基本操作说明
开始游戏
初试化界面和 蛇身
随机放置食物
方向键控制蛇
的运动方向
Y
是否吃到食
N

N
Y
蛇变长,并总 分加 10 分
Y
是否碰壁或
游戏结束,
结尾
是否继续
N
退出游戏 图 1 程序设计流程图 方向键控制的设计流程图如图 2 所示:其中 upmove 函数控制蛇向上运动,downmove 函
6
附录 部分程序代码清单
#include<stdio.h> #include<stdlib.h> #include<conio.h> #include<time.h> #include<windows.h> #define HEAD 300 #define FOOD 400 #define v_sleep 100/*改变 sleep 的大小可改变蛇的运动速度,此数值越小蛇的运动速度越快*/ int score=0; /*定义了一个全局变量来在整个程序中统计总成绩*/ /*----------------欢迎词-------------------*/ void welc() {
5
5. 收获及体会
在设计这个程序中我主要学会了如何运用以下有关 C 语言和 C++的知识: 1) 函数定义是要做到顾名思义是很重要的,它对读程序的人正确认识程序 十分重要,在修改这个程序的过程中也能很快找到程序各模块的作用,大大增 加了程序的可读性。 2) 分析函数先从 main()函数入手。Main()函数是 C++源程序编译时的开始, 从 main()函数开始读函数可将其他函数的功能理解得更透彻。 3) 在做程序的时候先列框架,将这个程序所要达到的目的(功能)分析出 来,选择正确的数据结构然后在将程序模块化,按照模块编写函数更加简单合理。 4) 我还了解了很多的库函数的作用,如字符串函数中有很多对字符串进行 处理的函数,起功能我都有所了解。 5)学会了有关头文件的使用方法,及系统调配问题的解决方法等。 6)在调试过程中,遇到了很多的问题,比如,因为使用的刷屏函数,所以屏幕经常出 现闪烁的情况,但是通过我和我的伙伴们的共同努力和学习,通过网上和书籍的查阅,我们 也得到了很多的收获,我们的小组也在中真正的学会了很多的东西,这次实训给我们带来了 很大的收获。可以按照程序运行的错误提示对原程序进行修改,在调试过程中有时也会遇到 不懂的问题,我去图书馆或上网查阅一些资料或者是向老师请教也解决了对源程序一一修改 直到运行成功。
srand(time(NULL)); return rand()%15+1;/*随机函数出现食物时的范围,防止食物出现在范围之外*/ } /*-----------------------------------------------*/ /*----------判断游戏是否结束---------------------*/ bool judgeGO(int (*sna)[17]) { int x,y,i=0,max=0,count=0; for(x=0,y=0;y<17;y++)
3.2
执行游戏的过程说明
进入贪吃蛇游行中后,首先弹出一个界面,上面出现的是欢迎词和游戏的简单说明, 可点机任意键开始游戏,此游戏是由键盘的四个方向键进行控制的,吃一个点,蛇身就长 长一端,总分数就加 10 分,如果碰壁或结尾游戏则结束,最后出先一个界面,上面显示你 此次游戏的总分数。希望我这个小游戏能让你玩的开心。
3
数控制蛇向下运动,leftmove 函数控制蛇向左运动,rightmove 函数控制蛇向右运动。
开始游戏
按方向键 的上键
则使用函数 upmove(snake)
蛇向上运动
按方向键 的下键
则使用函数 downmove(snake)
蛇向下运动
按方向键 的左键
则使用函数 leftmove(snake)
蛇向左运动
C 语言程序设计报告
题目:贪吃蛇游戏的程序设计 院系:西语学院 英语教育 6 班 姓名: 学号:
1.1 题目:
设计贪吃蛇小游戏
1.2 题目的要求:
玩家通过键盘控制蛇在地图上寻找食物,蛇吃下食物,可以加分,碰到四壁游戏结束。
1.3 设计的步骤:
分析设计题目的要求,即需求分析。 总体设计,确定所需模块及模块间调用关系,定义系统中使用的数据类型。 详细设计,确定每个模块的功能,绘制主要函数的流程图。 编写程序代码,调试程序使其能正确运行。要求书写规范,注意采用缩进格式。函数
相关文档
最新文档