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

贪吃蛇游戏设计

姓名: 张力

学号:

完成日期: 月 日

一、设计目的

贪吃蛇游戏程序功能的实现主要是建立在二维数组和图形界面的应用上,通过编写游戏程序能够熟悉掌握相关数组和图形函数的运用,提高编程水平,增加编程的兴趣

二、总体设计

主函数

图形驱动Init 画界面DrawK 游戏具体过程GamePlay 图形结束Close

游戏结束GameOver 输出成绩PrScore

三、详细设计(项目成员及分工、模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)

①主函数main():

定义使用的常数,全局变量及函数原型说明,并调用Init()函数初始化图形系统;然后调用DrawK()函数画界面,调用GamePlay()函数实现游戏的具体过程,游戏结束后调用Close()函数关闭图形系统结束程序。

②画界面函数DrawK():

主界面是一个密封的围墙,用两个循环语句分别在水平方向和垂直方向输出连续的宽度和高度均为10个单位的矩形小方块,设置成淡青色,背景颜色为黑色。

③游戏具体过程函数GamePlay():

算法过程:

设置初始值。为防止食物出现在一个位置上,要设置随机数发生器,真正产生随机数。初始时,蛇只有蛇头,设定一个开始方向;

循环执行,直到按Esc键退出;

没有按键的情况下,循环执行。

如果没有食物,随机出现食物;食物的随机出现要确保它的位置在10的倍数位置上,因为蛇的坐标都是以10为模的;如果有食物,则显示食物,蛇移动身体,根据蛇的方向改变坐标值,并判断蛇是否撞到了墙或自己吃到了自己,如果出现这两种情况之一,则蛇死;调用游戏结束函数GamePlay(),结束本次游戏;

判断蛇吃到食物的方法是蛇头的坐标和食物的坐标都相等;如果蛇吃到了食物,蛇身体长一节,数组元素增加一个,身体节数、分数都进行相应的改变。

在新位置画出蛇。采用的方法是每次移动的时候从最后一节开始到倒数第二节,将前一节的坐标赋值给后一节的坐标,移动后只要把最后一节用背景色去除即可。

D.如果有按键,则识别按键值。如果按键为Esc键则结束游戏,程序运行结束;如果所按键为方向键,则根据该键改变蛇方向的变量direction的值,相反方向键无效。

④游戏结束函数GameOver():

游戏结束,清除屏幕,调用输出分数函数PrScore(),并显示游戏结束。

⑤输出分数函数PrScore():

在指定位置利用sprintf()将整数转换为字符串,用outtextxy()输出,、bar()函数的应用是为了覆盖原来的值。

⑥图形结束函数Close():

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

调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题和采取的解决措施等;

将源文件在TC3.0环境下调试运行,前期发现错误为游戏界面静止。

源程序清单及执行结果:

#include

#include

#include

#include

#include

#include

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define DOWN 0x5000

#define UP 0x4800

#define Esc 0x011b

#define N 200

/*定义全局变量*/

int i,key;

int score=0;/*得分*/

int gamespeed=50000;/*游戏速度可以自己调整*/

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;

void Init(void);/*图形驱动*/

void Close(void);/*图形结束*/

void DrawK(void);/*开始画面*/

void GameOver(

c语言课程设计贪吃蛇报告,贪吃蛇C语言课程设计报告.doc相关推荐

  1. 计算机课程编程设计贪吃蛇游戏设计,c语言课程设计报告--贪吃蛇游戏系统

    c语言课程设计报告--贪吃蛇游戏系统 院 系 计算机科学技术学院 班 级 组 长 学 号 指导教师 2017 年 3 月 2 日 C 语言语言基础课程设计基础课程设计 贪贪贪贪吃吃吃吃蛇蛇蛇蛇游游游游 ...

  2. 课程设计报告linux小游戏,嵌入式课程设计报告---贪吃蛇游戏.doc

    嵌入式课程设计报告---贪吃蛇游戏 嵌入式系统课程设计报告书 课题题目:贪吃蛇游戏 学 院:核自院 班 级:测控三班 学 号:9 姓 名: 马文铂 第一章 引言- 2 - 1.1关于题目- 2 - 1 ...

  3. c语言设计贪吃蛇实验报告,贪吃蛇游戏程序设计实验报告

    <贪吃蛇游戏程序设计实验报告>由会员分享,可在线阅读,更多相关<贪吃蛇游戏程序设计实验报告(11页珍藏版)>请在人人文库网上搜索. 1.Windows编程大作业贪吃蛇设计与实现 ...

  4. JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二)

    目录 JAVA课程设计(小游戏贪吃蛇)完整源码附素材(一) JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二) JAVA课程设计(小游戏贪吃蛇)完整源码附素材(三) 前言 1. 任务描述 1.1  ...

  5. java多线程贪吃蛇实验报告_JAVA开放性实验报告贪吃蛇

    JAVA开放性实验报告贪吃蛇 JAVA程序设计 开放性实验报告 专 业: 计算机科学与技术 班 级: 2012级2班 学 号: 姓 名: 实验2贪吃蛇游戏设计(4学时) 1.实验内容 (1) 创建软件 ...

  6. c语言联机游戏,C/C++ 游戏 贪吃蛇双人对战版

    贪吃蛇双人对战版--C语言 最近写的,用于交最后一次结构化程序设计课的作业,闲暇之余传到网上,仅供参考,新手上路,请多指教. 话不多说,先附上下载链接.http://download.csdn.net ...

  7. c语言grade d10,《电子技术10级C语言课程设计报告书写规范》.doc

    课程设计报告书写规范 1.课程设计报告装订顺序:封面.任务书.目录.正文.附件(所有程序的源代码,要求对程序写出必要的注释).评分表(A4大小的图纸及程序清单). 2.正文的格式:一级标题用3号黑体, ...

  8. c语言大作业成绩分析问题,河南科技大学c语言课程设计-综合排序设计报告-成绩分析问题.doc...

    河南科技大学c语言课程设计-综合排序设计报告-成绩分析问题.doc 河南科技大学综合程序设计报告成绩分析问题学院电气工程学院年级专业电子161学号161404110104学生姓名李恺指导教师赵老师1. ...

  9. c语言程序设计报告表达式求值,数据结构 课程设计表达式求值 实验报告

    <数据结构 课程设计表达式求值 实验报告>由会员分享,可在线阅读,更多相关<数据结构 课程设计表达式求值 实验报告(21页珍藏版)>请在人人文库网上搜索. 1.实验课程名称 级 ...

最新文章

  1. 运行报表时提示输入用户名和密码
  2. HBase shell 命令执行
  3. 通信原理之IP协议,ARP协议 (三)
  4. [JSOI2008]火星人
  5. ​【Python入门】Python数学math模块55个函数详解
  6. python主从_python—mariadb自动部署主从
  7. android fragment 嵌套,Fragment嵌套Fragment时遇到的那些坑
  8. bash中的grep函数_如何在Bash中编写函数
  9. 使用 CSS 模拟鼠标点击交互
  10. SpringMvc源码入门
  11. 管理感悟:如何看待培训
  12. svn和maven结合讨论
  13. connection对象的参数
  14. [图论] 树剖LCA
  15. wireshark抓包教程详解
  16. Java 编程问题:三、使用日期和时间
  17. php api地址解析,百度地图API-根据地址解析坐标,根据坐标解析地址
  18. 转 鲁迅《随感录》之一二
  19. M25F1 4G全网通终端的技术应用
  20. 数据科学的重要支柱——统计学的最佳入门书籍

热门文章

  1. D. Boboniu Chats with Du(Codeforces Round #664 (Div. 2) )
  2. 个人作业项目报告(三)输出结果及测试样例的结果(附代码)
  3. mt4 python_迈达克软件公司承认Python运算对量化交易的重要性将Python与Metatrader 5集成一体...
  4. 【MACCMS】UA判断 展示判断
  5. scp免密传输文件总结
  6. 做流量站,没有资源,除了外链我们还能做什么?
  7. Unity PC版Log位置
  8. P3375 【模板】KMP字符串匹配(woc我太想她了)
  9. 4-20mA转0-5V隔离变送器、信号转换器
  10. java 错误 找不到符号_Java错误:找不到符号,也找不到原因