当前位置:文档之家› java课程设计贪吃蛇大学论文

java课程设计贪吃蛇大学论文

课程设计说明书课程名称:Java语言程序设计设计题目:学生成绩管理系统院系:计算机科学与信息工程学院学生姓名:肖文学号:14031010141专业班级:计算机科学与技术(14嵌入)指导教师:张阳2015 年12月27 日课程设计任务书设计题目贪吃蛇小游戏程序学生姓名肖文所在院系计科专业、年级、班14计科嵌入设计要求:1. 贪吃蛇游戏是大家很常见的小游戏,在生活工作之余大家可以玩它,已达到放松各种压力的目的。

2. 游戏可以进行升级,也就是增加吃食物的难度,以便使大家更有挑战性,不觉得太无趣。

3. 游戏界面大小可以任意指定,数据从文件读入。

4. 利用swing实现良好的GUI界面。

学生应完成的工作:1. 贪食蛇的前移算法主要是蛇身结点前移,后面的覆盖前面的蛇身结点。

依靠的调用编写的成员方法实现。

2. 在贪吃蛇中蛇头来控制蛇的移动方向,依靠的调用编写的成员方法实现。

3. 要求用户界面采用图形用户界面,影响方向键的控制。

4. 重复的调用paint()函数来实现对界面的重绘和食物的重置。

5. 源程序中要有充分的注释,报告中要有详细的流程图。

6. 运行的结果以及图形用户界面要进行屏幕拷贝,插入报告中。

幕拷贝,插入报告中。

参考文献阅读:1. 《Java语言程序设计》(美)Y·Daniel Liang 机械工业出版社2. 赵毅主编.跨平台程序设计语言——Java.西安:西安电子科技大学出版社,20063. 王路群.Java高级程序设计.北京:中国水利水电出版社,2006工作计划:1,12月21日,选择该课题,然后分析结构。

2,12月21日至25日开始编写各个模块。

3,12月28日至29日,对设计的系统进行测试以及进行修改。

4,12月30日,贪吃蛇完成。

任务下达日期:2015 年12月10 日任务完成日期:2015 年12月24 日指导教师(签名):学生(签名):贪吃蛇小游戏摘要:贪吃蛇是家喻户晓的益智类小游戏,选择这题目一是为了将自己所学的知识加以运用,二是一直以来贪吃蛇这个游戏深深的吸引着我,它的制作方法对于提前的我而言都是神秘的。

我希望通过自己所学知识把它剖析开来,真真正正的了解它的本质和精髓。

虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从实践的项目中提高自己的编程能力,因此我选定了这个项目。

关键词:贪吃蛇;java;学习;放松目录1. 设计背景 (4)1.1问题描述 (4)1.2 问题分析 (4)2.设计方案 (4)2.1 算法分析 (5)2.2 类的设计 (5)3.用户界面设计 (6)4. 模块划分及调用关系 (8)5. 运行说明及系统运行测试 (9)6. 收获与致谢 (4)7. 参考文献....................................................................... 错误!未定义书签。

8. 附件 (15)9. 附录源代码 (16)1. 设计背景1.1问题描述贪吃蛇是家喻户晓的益智类小游戏,选择这题目一是为了将自己所学的知识加以运用,二是一直以来贪吃蛇这个游戏深深的吸引着我,它的制作方法对于提前的我而言都是神秘的。

我希望通过自己所学知识把它剖析开来,真真正正的了解它的本质和精髓。

虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从实践的项目中提高自己的编程能力,因此我选定了这个项目。

1.2 问题分析这个程序是用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块。

移动时必须从蛇头开始,,也就是蛇尾不能改作蛇头。

当游戏者按了方向键后,蛇头朝着指定的方向移动,一步移动一节身体。

图形的实现是从蛇头的新位置开始画出蛇。

用户可以用上下左右键控制蛇头的方向。

非常简单。

2.设计方案2.1算法分析1. 贪吃蛇是很经典的格子游戏。

所谓格子游戏就是在设计游戏时的主要思想是每个设对象都是由格子组成,游戏运行界面也是由格子组成。

格子思想决定了此类游戏在设计时的算法思想。

2. 方向键控制一个方块的移动的方法,一个方块的移动是靠移动其坐标位置来实现的。

3. 方向键控制是上下左右对一个方块的控制,用四个判断语句实现。

4. 蛇的移动算法思想可以看成是第一个方块移动,第二个方块移到第一个方块的位置, 第三个方块移动到第二个方块的位置⋯⋯第N个方块移动到第N-1个方块的位置。

这样连续的移动就是蛇的移动了。

方向控制键控制了第一个方块的移动后,后面方块跟着移动 ,这样也实现了方向键控制对长蛇的移动。

5. 食物的随机产生的方法食物的随机产生需要一个随机种子函数然后利用系统时间做为随机种子。

6. 蛇的身体变长的方法当然要当蛇吃到食物时才能使身体变长。

因此有两个需要解决的问题:问题一:如何知道是否吃到食物?问题二:吃到食物后身体变长?解决问题一的方法是需要一个判断语句,当蛇头即构成蛇的第一个方块跟食物所在方块的坐标一样时判断吃到食物。

解决问题二则要相对复杂一些,需要多个判断语句构成。

7. 游戏结束的方法,当蛇碰到边框时或者吃到自己时游戏结束。

根据这个思想可以用判断语句实现。

然后是游戏结束后的处理,比如显示继续玩游戏还是退出游戏,并显示所吃到的食物的个数和时间等。

2.2类的设计1>.创建的类的描述。

1. Login类,登陆界面要求输入登陆者输入用户名和密码,分别设Go和Cancel两个登陆选项。

Login属性:用户名密码Go(进入游戏) Cancel(取消)操作: Enter() Close()2.SnakeFrame类,创建游戏窗口主界面。

采用图形界面设计,有窗体,菜单栏和游戏操作界面。

3.SnakeModel类,此类为蛇的初始化状态及模型,所有的游戏的开始都通过此类初始化及对蛇的操作。

SnakeModel属性: rows,cols,snakeHead,runingDiriction,locRO,snake,playBlockssnakeFood,gameScore,AddScore操作: LocationRO getSnakeHead(),LocationRO getSnakeTail(),Location getRuningDiriction(),LinkedList getSnake(),LinkedList getOthers(), getScore(),getAddScore(),setSnakeHead(Location snakeHead),LocationRO getSnakeFood(),setSnakeFood(),moveTo(Object a,LinkedList fromlist,LinkedList tolist),init(),SnakeModel(int rows1,int cols1),move(Location direction)4. SnakePanel类,此类为游戏界面创建蛇的面板和蛇的移动控制实现。

SnakePanel属性:gridsPanel, row; col; gridsPanel;direction;snake; snakeBody;otherBlocks;snakeHead; snakeFood; gameScore=0; speed;AddScore; t; isEnd; notExit;操作:SnakePanel(SnakeFrame parent,int row,int col),newGame(long speed)stopGame(),returnGame(),getGameScore(),updateTextFiled(String str)updateColors(),run(),keyPressed(KeyEvent event)keyReleased(KeyEvent event),keyTyped(KeyEvent event)change(SnakeFrame parent,int row2, int col2)5. LocationRO类,随机生成的食物位置。

用来随机生成食物。

引导蛇的移动方向。

6. Location类,对蛇的位置的描述类。

Location属性: x y操作:Location(int x,int y) ,getX(),getY(),setX(int x),setY(int y) ,equalOrRev(Location e),equals(Location e) ,reverse(Location e)2>.类之间的调用关系。

3.用户界面1. 登陆界面Login 登陆SnakeFrameLocationSnakeModel SnakePanelLocationRO2.游戏主界面【程序技巧】1. 为游戏设置权限,为游戏设置登陆界面。

2. 游戏界面采用图形界面美观大方易操作。

3. 功能齐全,可以选择开始,暂停,继续可以随时操控游戏状态,方便易操作,人性化设计。

4. 设置菜单功能齐全,可以让界面显示网格和取消显示网格,还可以根据自己的实际能力情况选择游戏的等级。

5. 窗口大小菜单可以根据自己的需要和爱好调整窗体的大小,可以选择大中小三种窗体。

适合不同的需要。

6. 本程序设置了作者信息菜单可以查询程序的制作人的信息等。

7. 对于新手用户,我为他们设置了操作指南菜单,帮助他们方便快捷的学会游戏的操作步骤。

4.模块划分及调用关系主要模块【模块流程图】1. 游戏界面模块和登陆模块流程图。

开始登陆界面 游戏界面 取消登录退出程序 结束开始 登陆界面输入用户名和密码进入游戏取消登录设置作者信息结束游戏帮助窗口大小文件操作指南开始 暂停 继续 等级显示网格视图软件信息中小 大退出2. 游戏模块否 是否是否是5.运行说明及系统运行测试1.安装eclipse ,在其上运行。

2. 如图在eclipse 中创建java 项目,在src 下建立SnakeGameDemo 包将所有的源程序放入包中,在项目中建立img 图片文件夹,将文件中需要的图片放入其中以便调用。

是否碰到蛇身\墙是否吃到食物 蛇身加长,分数增加提示游戏结结束随机显示食物蛇蛇运动是否开始 游戏开始创建贪吃蛇是否结束 暂停3. 主函数在Login类中,只需运行Login.java程序进入登陆界面,输入用户名和密码进入游戏。

4. 在文件菜单下开始,暂停,继续游戏。

5. 对第一次进入的用户请先看操作说明。

1、程序上机调试报告【语法错误及其排除】1. 将所有外部类定义为公共类,可以直接拿来应用,必须引入一个包来定义一个类来进行使用。

程序中的蛇是用网格布局中的小面板组成,蛇的身体由等大的小网格组成。

2. 键盘事件未进行监听以致键盘操作无法进行,监听函数有错误。

最后加入正确的监听函数。

相关主题