关于贪吃蛇的毕业论文范文(求C语言的贪吃蛇毕业论文毕业设计)

1.求C语言的贪吃蛇毕业论文、毕业设计

#include #include #include #include #include const int H = 8; //地图的高 const int L = 16; //地图的长 char GameMap[H][L]; //游戏地图 int key; //按键保存 int sum = 1, over = 0; //蛇的长度, 游戏结束(自吃或碰墙) int dx[4] = {0, 0, -1, 1}; //左、右、上、下的方向 int dy[4] = {-1, 1, 0, 0}; struct Snake //蛇的每个节点的数据类型 { int x, y; //左边位置 int now; //保存当前节点的方向, 0,1,2,3分别为左右上下 }Snake[H*L]; const char Shead = '@'; //蛇头 const char Sbody = '#'; //蛇身 const char Sfood = '*'; //食物 const char Snode = '.'; //'.'在地图上标示为空 void Initial(); //地图的初始化 void Create_Food(); //在地图上随机产生食物 void Show(); //刷新显示地图 void Button(); //取出按键,并判断方向 void Move(); //蛇的移动 void Check_Border(); //检查蛇头是否越界 void Check_Head(int x, int y); //检查蛇头移动后的位置情况 int main() { Initial(); Show(); return 0; } void Initial() //地图的初始化 { int i, j; int hx, hy; system("title 贪吃蛇"); //控制台的标题 memset(GameMap, '.', sizeof(GameMap)); //初始化地图全部为空'.' system("cls"); srand(time(0)); //随机种子 hx = rand()%H; //产生蛇头 hy = rand()%L; GameMap[hx][hy] = Shead; Snake[0].x = hx; Snake[0].y = hy; Snake[0].now = -1; Create_Food(); //随机产生食物 for(i = 0; i < H; i++) //地图显示 { for(j = 0; j < L; j++) printf("%c", GameMap[i][j]); printf("\n"); } printf("\n小小C语言贪吃蛇\n"); printf("按任意方向键开始游戏\n"); getch(); //先接受一个按键,使蛇开始往该方向走 Button(); //取出按键,并判断方向 } void Create_Food() //在地图上随机产生食物 { int fx, fy; while(1) { fx = rand()%H; fy = rand()%L; if(GameMap[fx][fy] == '.') //不能出现在蛇所占有的位置 { GameMap[fx][fy] = Sfood; break; } } } void Show() //刷新显示地图 { int i, j; while(1) { _sleep(500); //延迟半秒(1000为1s),即每半秒刷新一次地图 Button(); //先判断按键在移动 Move(); if(over) //自吃或碰墙即游戏结束 { printf("\n**游戏结束**\n"); printf(" >_<\n"); getchar(); break; } system("cls"); //清空地图再显示刷新吼的地图 for(i = 0; i < H; i++) { for(j = 0; j < L; j++) printf("%c", GameMap[i][j]); printf("\n"); } printf("\n小小C语言贪吃蛇\n"); printf("按任意方向键开始游戏\n"); } } void Button() //取出按键,并判断方向 { if(kbhit() != 0) //检查当前是否有键盘输入,若有则返回一个非0值,否则返回0 { while(kbhit() != 0) //可能存在多个按键,要全部取完,以最后一个为主 key = getch(); //将按键从控制台中取出并保存到key中 switch(key) { //左 case 75: Snake[0].now = 0; break; //右 case 77: Snake[0].now = 1; break; //上 case 72: Snake[0].now = 2; break; //下 case 80: Snake[0].now = 3; break; } } } void Move() //蛇的移动 { int i, x, y; int t = sum; //保存当前蛇的长度 //记录当前蛇头的位置,并设置为空,蛇头先移动 x = Snake[0].x; y = Snake[0].y; GameMap[x][y] = '.'; Snake[0].x = Snake[0].x + dx[ Snake[0].now ]; Snake[0].y = Snake[0].y + dy[ Snake[0].now ]; Check_Border(); //蛇头是否越界 Check_Head(x, y); //蛇头移动后的位置情况,参数为: 蛇头的开始位置 if(sum == t) //未吃到食物即蛇身移动哦 for(i = 1; i < sum; i++) //要从蛇尾节点向前移动哦,前一个节点作为参照 { if(i == 1) //尾节点设置为空再移动 GameMap[ Snake[i].x ][ Snake[i].y ] = '.'; if(i == sum-1) //为蛇头后面的蛇身节点,特殊处理 { Snake[i].x = x; Snake[i].y = y; Snake[i].now = Snake[0].now; } else //其他蛇身即走到前一个蛇身位置 { Snake[i].x = Snake[i+1].x; Snake[i].y = Snake[i+1].y; Snake[i].now = Snake[i+1].now; } GameMap[ Snake[i].x ][ Snake[i].y ] = '#'; //移动后要置为'#'蛇身 } } void Check_Border() //检查蛇头是否越界 { if(Snake[0].x < 0 || Snake[0].x >= H || Snake[0].y < 0 || Snake[0].y >= L) over = 1; } void Check_Head(int x, int y) //检查蛇头移动后的位置情况 { if(GameMap[ Snake[0].x ][ Snake[0].y ] == '.') //为空 GameMap[ Snake[0].x ][ Snake[0].y ] = '@'; else if(GameMap[ Snake[0].x ][ Snake[0].y ] == '*') //为食物 { GameMap[ Snake[0].x ][ Snake[0].y ] = '@'; Snake[sum].x = x; //新增加的蛇身为蛇头后面的那个 Snake[sum].y = y; Snake[sum].now = Snake[0].now; GameMap[ Snake[sum].x ][ Snake[sum].y ] = '#'; sum++; Create_Food(); //食物吃完了马上再产生一个食物 } else over = 1; }。

2.求份详细的贪吃蛇课程设计报告

贪吃蛇游戏----《C程序设计课程设计》

一、设计要求

编写C语言程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分;接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉(蛇头撞到自己的身体)游戏结束。

二、设计内容

1.游戏界面:边框表示围墙,红色矩形代表蛇,绿色小方块代表食物。

2.设计思路

这个程序的关键是表示蛇的图形以及蛇的移动。用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动时必须从蛇头开始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时由于没有庆平的原因,原来蛇的位置和新蛇的位置差一个单位,所以看起来社会多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现和消失也是画矩形块和覆盖矩形块。

3.数据结构

#define N 200

stuct Food

{

int x ; /*食物的横坐标*/

int y ; /*食物的纵坐标*/

int yes ; /*判断是否要出现食物的变量*/

}food /*食物的结构体*/

struct Snake

{

intx[N]; /*蛇的横坐标*/

inty[N]; /*蛇的纵坐标*/

intnode; /*蛇的节数*/

intdirection; /*蛇的移动方向*/

intlife; /*蛇生命,0活着,1死亡*/

}snake;

4.主要函数

1)主函数main():初始化图形系统,调用DrawK()画出开始画面,调用函数Gameplay(),即玩游戏过程,游戏结束后调用Close()关闭图形系统,结束程序。

2)画界面函数DrawK();

3)游戏具体过程函数Gameplay();

4)游戏结束函数Gameplay(),游戏结束,清除屏幕,输出分数,显示游戏结束信息。

5)PrScore(),输出分数。

6)Close()函数图形结束。在显示游戏结束信息的画面时,按任意键关闭图形系统,结束程序。

3.贪吃蛇带给我的启示作文600

那件事发生在我读二年级的时候.那天放学,我排着路队正准备回家.突然跟我走在同一排的几个同学悄悄在靠近我跟我说:"今天你跟我来,我带你去一个好地方"!我心想,反正今天作业不多,回到家一定能完成,不如就跟他们去吧!于是我们一起出了校门,就向东拐,一直走到了一个小公园前.我一看,啊,到处是绿树成荫,花香扑鼻,一条小河前有一个亭子,我跟同学便向那走去,等我们坐下后,一个同学从书包去拿出来一套厚厚的游戏卡,对我们说:"大家一起来玩吧!"说着将卡一张张地发给了我们,还说了怎样玩,有怎样的规则,不照规则玩要扣分,等等..我们便开心地玩了起来.不知不觉,天己渐渐地黑了,路旁的灯光渐渐在亮了起来,我怕妈妈着急,不得不向同学说再见,背上书包回家去了.当我吃完晚饭,妈妈说:"今晚去外婆家,你作业做完了吗?"因为要去外婆家,所以我就撒了一个谎说:"做好了"当时我心想作业那么少,回来也可以做.可从外婆家回来,已经是晚上10点多了,心想这么点作业,不如明天早上早点起床做吧.于是我就放心地睡下了." 起床了,起床了,再不起床来不及了"妈妈把我从睡梦中叫醒,我一看7点多了,妈妈给我烧的早饭,我急匆匆地吃了一两口便背着书包上学去了,到了学校我才想起来还没做作业,这可怎么办呀??我急得团团转,老师知道后当着全班同学的面狠狠地批评了我一顿.我当时十分后悔.通过了这件事,我悟出了一个道理,不管作业多还是少都不能拖,今天的事今天做,决不能留到明天,做别的事也一样,不能只为一时的放松,而误了做大事。

4.急求 设计贪吃蛇实验报告

学生课程设计(论文) 题 目: 贪吃蛇游戏程序设计指导 学生姓名: 学 号:200910801001 所在院(系): 计算机学院 专 业: 计算机科学与技术 班 级: 2009级一班 指导教师: 何春燕 职称: 讲 师 2010年06月 18日 目录 摘要…………………………………………………………6 1、设计要求………………………………………………….7 2、所用仪器设备…………………………………………….7 3、具体设计过程…………………………………………….8. 3.1、程序功能……………………………………………8 3.2设计思想………………………………………………8 3.3.设计的具体实现……………………………………8. 3.4 总体流程图………………………………………….14 3.5、程序代码编写及注释………………………………..15 3.6调试问题及解决方法…………………………………21 3.7调试结果…………………………………………….22. 4设计心得体会………………………………………………25. 5、参考文献………………………………………………..26 摘 要 编写C语言程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜爱的游戏,一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过按键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被蛇吃掉,这时蛇的身体长一节,同时计10分,接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。

作为一个完整的程序,尤其是一个完整的游戏,必须考虑人机交流与用户体验。游戏的界面不能太丑,更不能连个简单的界面都没有。

游戏应该有个比较漂亮的界面,在有必要硬件支持和软件的支持下,游戏开发者必须最大限度的使游戏美观。游戏的美观是一方面,游戏的内在素质是另一方面。

一个游戏的优劣,最终由玩家决定。在游戏与玩家见面之前,游戏开发者要设计一种让玩家投入的游戏模式,并且在一定的游戏规则下进行。

关键词 贪吃蛇 流程图 c语言 源程序 turbo C 贪吃蛇游戏程序设计 1、设计要求 通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。 (1).收集资料,分析课题,分解问题,形成总体设计思路; (2).深入分析各个小问题,列出大纲,编写各部分程序模块; (3).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍; (4).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行; (5).完成课程设计报告,并进行答辩 C语言是一种易学易懂的通用程序设计语言,由于它具有功能性强,运用简洁,灵活兼有高级语言与低级语言的优点,以及“目标程序效率高”可移植性和能在各种系统上普遍实现等特点使它成为当今世界上的主流程序设计语言之一,同时被选作目前全世界广泛应用,同时也是大学生必修的科目。

作为一位当代的大学生更要很好的利用它,学好一门设计语言,实现学以至用。 制作C程序报告,可以巩固和加深自己对C语言课程的基本知识的理解和掌握,并且能够掌握C语言编程和程序调试的基本技能。

通过游戏程序的设计训练可以提高自己的基本技能,更好地掌握字符串的表示方法和字符串函数的功能、Tc图形操作的基本知识、键盘上特殊键的获取以及图形方式下光标的显示,提高自己编程兴趣与编程水平,学会如何正确的书写程序设计说明文档,提高运用C语言解决实际问题的能力,巩固C语言语法规则的理解和掌握,学会通过源程序写出流程图,提高自学以及查阅资料的能力。 2、所用仪器设备 1、能正常工作的计算机一台; 2、WindowsXP; 3、TC程序; 4、Microsoft Word2003; 3、具体设计过程 3.1、程序功能 贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体叉蛇头撞倒自己身体游戏结束。

3.2 设计思想 程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。

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

为了便于理解,定义两个结构体:食物与蛇。 3.3.设计的具体实现 (1)函数定义 函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用 #define N 200 #include /*图形头文件*/ #include /*包含rand等函数*/ 。

5.c语言实训贪吃蛇报告书

《高级语言程序设计》课程设计 实验报告

题目:贪吃蛇

专业:计算机

班级: 软件

姓名:

成绩:

指导教师:

完成日期:2008年09月23日

一、目的

1. 进一步掌握和利用C语言进行程设计的能力;

2、进一步理解和运用结构化程设计的思想和方法;

3、初步掌握开发一个小型实用系统的基本方法;

4、学会调试一个较长程序的基本方法;

5、学会利用流程图或N-S图表示算法;

6、掌握书写程设计开发文档的能力(书写课程设计报告);

二、内容与设计思想。

(1).系统功能与分析(填写你所设计的菜单及流程图)。

功能:进行贪食蛇游戏

分析:定义键盘方向键操作,随机数发生器产生食物,并分别利用函数判断贪食蛇的长度及游戏是否成功等.

并能够输入游戏成绩.

(2).数据结构

struct Food

{

int x;/*食物的横坐标*/

int y;/*食物的纵坐标*/

int yes;/*判断是否要出现食物的变量*/

}food;/*食物的结构体*/

struct Snake

}

int x[N];

int y[N];

int node;/*蛇的节数*/

int direction;/*蛇移动方向*/

int life;/* 蛇的生命,0活着,1死亡*/

}snake;

(3).模块设计

根据功能需要:

源文件 :#include <stdio.h>

#include <graphics.h>

#include <stdlib.h>

#include <dos.h>

函数名 功能

void main() 游戏主程序

void Init(void); 图形驱动

void Close(void); 图形结束

void DrawK(void); 开始画面

void GameOver(void); 结束游戏

void GamePlay(void); 玩游戏具体过程

void PrScore(void); 输出成绩

(3)总体设计思想:

利用图形驱动,制作美观的游戏界面.

通过随机函数产生随机数,控制游戏过程食物的出现.

定义键盘操作,控制游戏过程蛇的移动方向.

画出边界,并判断游戏是否结束.

统计游戏过程蛇吃的食物数量,计算并输出游戏成绩.

(4)调试过程: 测试数据及结果,出现了哪些问题,如何修改的

这里,你就写一下你平时出错的地方,与如何修改的.这里我也不好帮你写.

(5)程序有待改进的地方及本次实习的收获和建议

收获:加深认识了程序编译过程的中团队合作的重要性.

提高了自己的编程能力

(7)源程序清单(主要代码)

清单只要将上面的程序全部粘帖就可以了.

关于贪吃蛇的毕业论文范文

转载请注明出处众文网 » 关于贪吃蛇的毕业论文范文(求C语言的贪吃蛇毕业论文毕业设计)

资讯

公园景观毕业论文(求几篇景观设计毕业论文的范文)

阅读(102)

本文主要为您介绍公园景观毕业论文,内容包括求几篇景观设计毕业论文的范文,关于风景园林的毕业论文,园林专业的毕业论文。课题背景介绍 临沂市位于山东省东南部,素有“山东南大门”之称,下辖3区9县,面积1。72万平方公里,人口1000万,是山东省面积

资讯

工商企业管理毕业论文内容(工商企业管理毕业论文.6000字)

阅读(73)

本文主要为您介绍工商企业管理毕业论文内容,内容包括工商企业管理毕业论文.6000字,工商管理毕业论文的题目和内容范围,工商企业管理毕业论文范文工商企业管理毕业论文大纲怎么工商企。二、 战略方向作为中小企业发展的战略体系,缺少对战略方

资讯

工科的毕业论文模板(工科生的毕业论文怎么写的)

阅读(92)

本文主要为您介绍工科的毕业论文模板,内容包括工科生的毕业论文怎么写的,求大神们帮写一篇本科学历的工科论文很着急,工科毕业设计结语怎么写好。这个大实验就是你的毕业课题吗?那论文太好写啦。引言(或绪论)引言(或绪论)简要说明研究工作的目的

资讯

光明乳业简介毕业论文(急求)

阅读(80)

本文主要为您介绍光明乳业简介毕业论文,内容包括求中国乳业的分析论文题目,专业点的,要从行业角度,急求光明乳业的公司简介,急求光明乳业的公司简介。光明乳业股份有限公司是由国资、外资、民营资本组成的产权多元化的股份制上市公司,主要从

资讯

大专检验技术专业毕业论文(有没有医学检验专业的论文啊)

阅读(91)

本文主要为您介绍大专检验技术专业毕业论文,内容包括有没有医学检验专业的论文啊,急求关于医学检验毕业论文一篇或给我几个比较好的网址,求医学检验毕业论文。有的,你要可以给你。。医学检验是运用现代物理化学方法、手段进行医学诊断的一门

资讯

焊接工艺设计毕业论文(焊接毕业论文怎么写)

阅读(78)

本文主要为您介绍焊接工艺设计毕业论文,内容包括焊接毕业论文怎么写,焊接专业毕业设计论文怎样写啊,焊接专业论文怎么写。焊接大专毕业论文提纲 以铝合金点焊为例: 第一部分:文献综述。 主要介绍焊接国内外发展现状,并能从中发现问题,提出问题,

资讯

化工专业毕业设计论文(应用化工专业毕业论文)

阅读(91)

本文主要为您介绍化工专业毕业设计论文,内容包括应用化工专业毕业论文,求:化工专业毕业论文,求一篇毕业论文,要求是对化工类化工工艺的设计和研究,字数要求。石油化工装置设计与安全 摘 要:针对石油化工装置中存在的危险因素,从工艺设计、装置

资讯

乘客自动计数系统毕业论文(求计数器毕业论文)

阅读(74)

本文主要为您介绍乘客自动计数系统毕业论文,内容包括求计数器毕业论文,什么是乘客自动计数系统,求一份毕业设计《计程车自动计费系统》。摘要:数字秒表,主要由以下几部分组成:1.控制部分;2.计数显示电路;3.电源电路。此次采用的方案是利用时基脉

资讯

大学文秘专业毕业论文(秘书专业毕业论文题目及论文要新颖的)

阅读(99)

本文主要为您介绍大学文秘专业毕业论文,内容包括秘书专业毕业论文题目及论文要新颖的,秘书专业毕业论文,关于文秘专业的论文。提供一些秘书专业毕业论文的选题,供参考。1.试论档案的管理与利用2.档案的作用与管理刍议3.论档案人员的素质修养

资讯

公园景观毕业论文(求几篇景观设计毕业论文的范文)

阅读(102)

本文主要为您介绍公园景观毕业论文,内容包括求几篇景观设计毕业论文的范文,关于风景园林的毕业论文,园林专业的毕业论文。课题背景介绍 临沂市位于山东省东南部,素有“山东南大门”之称,下辖3区9县,面积1。72万平方公里,人口1000万,是山东省面积

资讯

工商企业管理毕业论文内容(工商企业管理毕业论文.6000字)

阅读(73)

本文主要为您介绍工商企业管理毕业论文内容,内容包括工商企业管理毕业论文.6000字,工商管理毕业论文的题目和内容范围,工商企业管理毕业论文范文工商企业管理毕业论文大纲怎么工商企。二、 战略方向作为中小企业发展的战略体系,缺少对战略方

资讯

工科的毕业论文模板(工科生的毕业论文怎么写的)

阅读(92)

本文主要为您介绍工科的毕业论文模板,内容包括工科生的毕业论文怎么写的,求大神们帮写一篇本科学历的工科论文很着急,工科毕业设计结语怎么写好。这个大实验就是你的毕业课题吗?那论文太好写啦。引言(或绪论)引言(或绪论)简要说明研究工作的目的

资讯

光明乳业简介毕业论文(急求)

阅读(80)

本文主要为您介绍光明乳业简介毕业论文,内容包括求中国乳业的分析论文题目,专业点的,要从行业角度,急求光明乳业的公司简介,急求光明乳业的公司简介。光明乳业股份有限公司是由国资、外资、民营资本组成的产权多元化的股份制上市公司,主要从

资讯

大专检验技术专业毕业论文(有没有医学检验专业的论文啊)

阅读(91)

本文主要为您介绍大专检验技术专业毕业论文,内容包括有没有医学检验专业的论文啊,急求关于医学检验毕业论文一篇或给我几个比较好的网址,求医学检验毕业论文。有的,你要可以给你。。医学检验是运用现代物理化学方法、手段进行医学诊断的一门

资讯

毕业论文中期进展表(论文中期检查表的论文进展情况怎么写)

阅读(78)

本文主要为您介绍毕业论文中期进展表,内容包括论文中期检查表的论文进展情况怎么写,毕业论文中期检查表怎么填写最好给个范文,论文中期汇报表怎么写。本科毕业设计(论文)中期检查表指导教师: 职称: 所在院(系): 教研室(研究室): 题 目10t桥式起重机总