贪吃蛇游戏 实习报告.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计报告 贪吃蛇游戏设计 专业 电子信息工程 学生姓名 杜 运 福 班级 B电子062 学号 0610620224 指导教师 曹 妍 完成日期 2008年8月30日 贪吃蛇游戏设计 摘要:本设计主要围绕贪吃蛇游戏展开。众所周知,贪吃蛇游戏一直以来是比较流行的。传统的贪吃蛇游戏功能比较少,对蛇的控制仅限于向左转和向右转,while(1)控制循环过程,可使游戏重复玩,在蛇死之前不停的玩。判断蛇死的算法是通过判断蛇有没有碰到自己及墙壁。使蛇向前移动采用递归算法,通过递归将蛇的每一节依次向前移动,横坐标与纵坐标依次向前赋值,从而达到使蛇前移的目的。蛇的前进方向通过if结构判断。 3.2、数据结构 蛇与食物信息分别用两个结构体存储与表示。将食物的横坐标x、纵坐标y和判断是否要出现食物的变量yes分别作为食物的结构体的成员。蛇的横坐标数组x[n],纵坐标数组y[n],蛇的节数node,蛇的移动方向direction、蛇的生命life分别作为蛇的结构体的成员。结构体内每个成员的存储类型均为整型。 3.3、模块设计 模块应具有高内聚性,低耦合性。这样,程序运行才更稳定,效率更高。 据功能将贪吃蛇游戏划分成四个大模块,九个小模块。每个模块均具有自己的功能,而且,比较容易画出各个模块的流程图。 3.4、模块枝干图 简要说明:图形驱动即完成初始化图形系统功能;开始画面模块的主要作用是根据设置绘制出玩游戏区域四周的墙壁;玩游戏的过程是游戏此游戏程序的核心,又可细分为好多小的功能模块;其中,显示食物模块仅完成显示食物功能;蛇前移模块即通过递归算法实现蛇的向某方向移动;判蛇死模块的功能是通过判断蛇是否碰到自己或墙壁来判断蛇有没有死亡。吃到食物后小模块只有蛇吃到食物后才起作用。即当蛇吃到食物后,蛇自身延长一节并绘出蛇,同时加10分。通过键盘操控来玩游戏主要由判反向移动模块完成,即当蛇不是反向移动时,按照键盘上方向键指示移动。游戏结束模块功能简单,仅完成输出得分与提示语功能。最后图形结束模块完成关闭图形功能。 4、程序流程图 4.1、图形驱动 4.2、开始画面 显示食物 蛇向前移动 判蛇死 吃到食物后处理 判蛇反向移动 游戏结束 图形结束 5、程序设计及关键源代码 定义上下左右控制方向: #define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define ESC 0x011b 设定游戏速度: int gamespeed=60000; 用结构体定义食物与蛇: 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死亡

文档评论(0)

白领文档(原创) + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档