方块运动像贪吃蛇一样C语言,贪吃蛇C语言课程设计.doc

贪吃蛇C语言课程设计

本科课程设计论文

题 目 用C语言实现贪吃蛇

系 别 信息科学与技术系

专业班级

姓 名 学 号

指导教师

年 月 日

信息科学与技术系

目 录

摘 要- 2 -

第一章 绪 论- 3 -

第二章 需求分析- 4 -

2.1 功能需求- 4 -

2.2 性能需求-4-

第三章 程序设计- 5 -

3.1 总体设计- 5 -

3.2 详细设计- 5 -

第四章 调试与测试- 15 -

第五章 总结与心得- 25 -

附 录- 26 -

摘 要

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

经过分析,我使用C语言开发工具,通过TC软件来实现,在掌握C语言的基础知识:数据类型(整型.实型.字符型.指针.数组.结构等);运算类型(算术运算.逻辑运算.自增自减运算.赋值运算等);程序结构(顺序结构.判断选择结构.循环结构);大程序的功能分解方法(即函数的使用)等.进一步掌握各种函数的应用以及文件的读写操作等.

关键字:

贪吃蛇 光标键 数据类型 运算类型 程序结构 TC软件

第一章 绪 论

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

程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇表示食物与蛇的矩形块设计为10*10个像素单位,食物的基本数据域为他所出现的位置,用x和y座标表示,则矩形块用函数rectangle(x,y,x+10,y+10)或rectangle(x,y,x+10,y-10)可以画出。由于每次只出现一个食物,所以设定yes表示是否要出现食物。蛇的一节身体为一个矩形块,表示矩形块只需起点座标x,y。身体不断增长,用数组存放每节座标,最大设定为N=200,node表示当前节数。保存蛇的移动方向的变量direction和生命的变量life,一旦life为1,表示蛇死,结束。

本系统主要功能主要有:

第二章 需求分析

2.1 功能需求:

根据主界面显示内容进行选择并进一步执行相应操作。

一、?:

通过函数Init(),初始画面、

二、通过DrawK(),主界面是一个封闭的围墙,用两个循环语句分别在水平和垂直方向输出连续的宽度和高度的矩形方块。

三、玩游戏的具体过程:

通过函数GamePlay(),通过按键盘上四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被蛇吃掉,这时蛇的身体长一节,接着又出现食物,等待被蛇吃掉,小蛇继续运动。

四、游戏结束:

通过函数GameOver(),蛇碰到墙壁或者碰蛇身,游戏结束,清除屏幕,输出分数显示游戏结束信息。

五、关闭图形系统:

通过函数Close(),关闭图形界面。

六、结束程序

七、退出系统设计将此系统化分为如下模块:可用函数Init来实现此操作。

??2、:DrawK()函数来实现。出现运行界面。

3、模块:可用GamePlay函数来实现。4、游戏结束后模块:用GameOver()函数来实现。

5、PrScore()函数来实现。输出游戏的得分。

关闭图形系统模块:用Close()函数来实现。关闭图形运行界面。

7、结束程

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值