C?语言课程设计报告

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;??//?食物出现的坐标

int?flag;//?食物的状态,1?表示食物还没被吃,0?表示食物被吃了

C?语言课程设计报告

}food;

struct?SNAKE//?定义结构体,来存储蛇的相关信息

{

COOR?crd[SIZEMAX];??//?保存蛇的每个结数的坐标,最多有?100?节

int?node;//?保存蛇当前节数

DIR?dir;//?当前蛇行进的方向

}snake;

3、?游戏流程图

开始

图形界面初始化

进入游戏难度选择界面

进入游戏界面

从键盘读入操作信息

各类消息判断并作相应的处理

蛇是否存活

关闭游戏,结束

三、所需核心算法分析

1.主函数

C?语言课程设计报告

void?main()//主函数

{

initgraph(640,?640);

loadimage(&img[0],?"denglu3.jpg");//导入图片

loadimage(&img[1],?"a1.jpg");

loadimage(&img[2],?"a2.jpg");

loadimage(&img[3],?"b1.jpg");

loadimage(&img[4],?"b2.jpg");

loadimage(&img[5],?"c1.jpg");

loadimage(&img[6],?"c2.jpg");

loadimage(&img[7],?"beijing.jpg");

begin();//登陆界面

init();//?初始化游戏

while(1)

{

while(!kbhit())

{

if?(!food.flag)

{

setfoodcrd();

}

showfood();

judgeslod();

judgesef();

snakemove();

Sleep(speed);

}

changeskdir();

}

C?语言课程设计报告

}

2.图形初始化

void?init()//?初始化游戏

{

putimage(0,?0,?&img[7]);

setbkcolor(RGB(124,107,7));

food.flag?=?0;

snake.crd[0].x?=?80+?SNAKELEN;

snake.crd[0].y?=?155;

snake.crd[1].x?=?80;

snake.crd[1].y?=?155;

snake.node?=?2;

snake.dir?=?right;

}

3.读入操作信息的处理

void?snakemove()

{

int?i;

for?(i=snake.node;?i>0;?i--)

{

snake.crd[i].x?=?snake.crd[i-1].x;

snake.crd[i].y?=?snake.crd[i-1].y;

}

switch?(snake.dir)

{

case?up:

snake.crd[0].y?-=?SNAKELEN;

break;

case?down:

snake.crd[0].y?+=?SNAKELEN;

break;

case?left:

sna

c语言程序设计贪吃蛇需求分析,c语言贪吃蛇课程设计报告.docx相关推荐

  1. c语言程序设计报告数制转换,数制转换-C语言程序设计课程设计报告.docx

    计算机学院<高级语言程序设计>课程设计报告 PAGE \* MERGEFORMAT 10学号2016-2017学年 第二学期 <C语言程序设计> 课程设计报告 题目:数制转换专 ...

  2. c语言模拟计算机指令流程图,家居分布式温度监测报警系统-传感器课程设计报告 带程序及仿真全套资料...

    资料包: 0.png (13.1 KB, 下载次数: 11) 2018-1-10 04:19 上传 传感器课程设计报告 课    题: 家居分布式温度监测报警系统班    级: 自152 姓    名 ...

  3. c语言课时设计猜坐标游戏,c语言小游戏课程设计报告.docx

    c语言小游戏课程设计报告 中国地质大学 本科生课程论文封面 课程名称c语言课程设计 教师姓名陈喆老师 本科生姓名周宜诺 本科生学号XX 本科生专业土地资源管理 所在院系公共管理学院 类别: 日期: 课 ...

  4. 提升C语言程序运行效率 马尔可夫,计算机程序编程课程设计报告(马尔可夫链算法生成随机可读文本).doc...

    PAGE 1 计算机程序编程课程设计报告 (马尔可夫链算法生成随机可读文本) 引言: 马尔可夫链的数学背景: 马尔可夫链,因安德烈?马尔可夫(A.A.Markov,1856-1922)得名 ,是数学随 ...

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

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

  6. python贪吃蛇代码课程设计_c语言课程设计之贪吃蛇代码及思路 c语言课程设计报告之贪吃蛇...

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/8846529.html 注:本文档需与c语言课程设计之贪吃蛇文档配套使用.c语言实现贪吃蛇代码可 ...

  7. c语言课程设计贪吃蛇报告,贪吃蛇C语言课程设计报告.doc

    贪吃蛇C语言课程设计报告 贪吃蛇游戏设计 姓名: 张力 学号: 完成日期: 月 日 一.设计目的 贪吃蛇游戏程序功能的实现主要是建立在二维数组和图形界面的应用上,通过编写游戏程序能够熟悉掌握相关数组和 ...

  8. c语言链表p-%3enext,课程设计报告.c语言程序设计.pdf

    课程设计报告.c语言程序设计 学生成绩管理 C语言课程设计报告 学 院 _信息学院_ 专 业 软件工程 班 级 _ _ 学 号 姓 名 课 题 _C语言课程设计_ 指导教师 __ 杨老师 _ 报告成绩 ...

  9. c语言综合程序设计省市邮政编码,《C语言程序设计课程设计报告》_课程教学大纲...

    <<C语言程序设计课程设计报告>_课程教学大纲>由会员分享,可在线阅读,更多相关<<C语言程序设计课程设计报告>_课程教学大纲(6页珍藏版)>请在人人文 ...

最新文章

  1. kafka集群broker频繁挂掉问题解决方案
  2. iOS之深入解析Xcode 13正式版发布的40个新特性
  3. 【Python爬虫】入门知识
  4. RegistryBoostry2010/2011/2012的破解方法
  5. 机器学习(八)——SVD推荐系统
  6. angular 表单操作
  7. 【NOIP2017】宝藏
  8. 计算机制作贺卡教案,WORD电子贺卡制作的优秀教案_电子贺卡
  9. 鸿蒙系统 微内核 sel4,引入成熟的微内核技术改良reactos,如sel4
  10. 微信小程序章节自测--6-7-8-9-有解析
  11. 航天信息a3连接不上服务器,航天信息睿财A3使用说明
  12. 如何在Dynamic CRM 2011中使用自定义Workflow
  13. 怎么让限制复制的网站能复制
  14. LInux中的atime、mtime和ctime
  15. CentOS7中安装Tomcat8
  16. 访谈李开复:谁主宰微软未来
  17. mysql求及格百分率_关于mysql进行名次的排名和计算及格率的分享
  18. 经典算法:鸡兔同笼问题
  19. typescript的类class 和 类的访问修饰符
  20. Qt5入门学习——模型/视图结构

热门文章

  1. STM32应用开发实践教程:环境光照强度监测的应用开发
  2. 配置Java环境变量有什么用?
  3. 定时器与计数器的区别
  4. Cisco交换机密码设置
  5. electron中表格导出excel使用XLSX.writeFile 更改写入位置方法
  6. 机器学习(一)---KNN算法总结(手写体识别)
  7. c语言中常用的字符函数以及字符串函数
  8. WCF RIA 解决超时报错问题
  9. Slam算法工程师(求人才)
  10. 基于MATLAB的基本数字调制解调系统的设计