学号1208020102《面向对象程序设计》课程设计报告题目:贪吃蛇游戏与程序设计专业:网络工程班级:12级一班姓名:曹梦飞指导教师:齐敏菊成绩:计算机与信息工程系2014年6月10日2013-2014学年第二学期计算机与信息工程系《面向对象程序设计》课程设计报告1目录1.设计内容及要求..........................................................................................................................21.1设计内容............................................................................................................................21.2设计任务及具体要求........................................................................................................22.概要设计.....................................................................................................................................33.设计过程.....................................................................................................................................33.1开发环境和软件.................................................................................................................33.2总体程序流程图................................................................................................................33.2.1主类贪吃蛇...........................................................................................................43.2.2类SnakeFrame.........................................................................................................53.2.3类贪吃蛇..................................................................................................................53.2.4类Paint..................................................................................................................64.运行结果如所示............................................................................................................................6游戏结束...........................................................................................................................................75.参考文献.......................................................................................................................................8源程序..............................................................................................................................................8计算机与信息工程系《面向对象程序设计》课程设计报告21.设计内容及要求1.1设计内容本软件是针对贪吃蛇小游戏的JAVA程序,利用方向键来改变蛇的运行方向,空格键暂停或继续游戏,并在随机的地方产生食物,吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。1.2设计任务及具体要求本游戏用户可以自己练习和娱乐。本游戏需要满足以下几点要求:(1)利用方向键来改变蛇的运行方向。(2)空格键暂停游戏,并在随机的地方产生食物。(3)吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。(4)用户可以根据需要暂停,以及根据水平选择不同的游戏难度。要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用java语言进行程序设计的能力,初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。计算机与信息工程系《面向对象程序设计》课程设计报告32.概要设计游戏大体框架如图3.设计过程3.1开发环境和软件(1)操作系统:Windows7(2)Java开发工具:Eclipse3.2总体程序流程图新建游戏的启动窗口publicclassSnakeGame{publicstaticvoidmain(String[]args){SnakeFrameframe=newSnakeFrame();frame.setTitle(贪吃蛇);键盘控制蛇运动蛇吃食物吃一个加1分开始暂停蛇开始运动蛇暂停运动游戏启动界面游戏主菜单游戏窗口结束重新开始显示重新绘制蛇显示分数结束游戏动下一关进入下一关计算机与信息工程系《面向对象程序设计》课程设计报告4frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}}3.2.1主类贪吃蛇(1)主类为此程序的入口,定义了贪吃蛇的对象Frame,开始运行程序(2)源程序见详细代码表格1成员变量成员变量描述变量类型名称是否运动Booleanisrun蛇体ArrayListNODEbody食物Nodefood方向intdrection分数intscore速度intSpeed状态IntStatus运动中PublicstaticfinalintRunning左PublicstaticfinalintLeft右PublicstaticfinalintRight上PublicstaticfinalintUP计算机与信息工程系《面向对象程序设计》课程设计报告5下PublicstaticfinalintDown速度PublicstaticfinalintSLOW,MID,FAST3.2.2类SnakeFrame(1)成员变量见表2表格2主要成员变量成员变量描述变量类型名称蛇面板PrivateJpanelSnakepanel状态标签PrivateJpanelstatus分数标签PrivateJpanelscore菜单条PrivataJMenuBarMenu蛇类对象PrivateSnakeSnake游戏菜单JMenuYouximenu帮助菜单JMenuHelp(2)方法见表3方法名功能SnakePanel()创建蛇的面板addKeyListener监视器JLabel()设置标签JManu()创建菜单JManuItem构造菜单项3.2.3类贪吃蛇(1)成员变量见表4表格3主要成员变量成员变量描述变量类型名称是否运动Booleanisrun蛇体ArrayListNODEbody食物Nodefood方向intdrection分数intscore速度intSpeed状态IntStatus运动中PublicstaticfinalintRunning左PublicstaticfinalintLeft右PublicstaticfinalintRight上PublicstaticfinalintUP计算机与信息工程系《面向对象程序设计》课程设计报告6下PublicstaticfinalintDown速度PublicstaticfinalintSLOW,MID,FAST(2)方法见表五表格4主要方法方法名功能Iseating()吃食物Isbang()是否碰撞到墙壁,或自己Changedirecte()判断是否吃到食物,判断是否改变方向Makefood()在随机的地方产生食物Move()蛇如何移动3.2.4类Paint此类为画蛇的面板类,是粉色蛇身算法的类。源代码见详细代码。3.2.5类Run此类为线程的子类,实现蛇运动以及记录分数的功能。4.运行结果如所示游戏进入界面计算机与信息工程系《面向对象程序设计》课程设计报告7按上下左右键即可控制蛇的方向游戏结束心得:1)在设计程序之前,务必要对自己所要设计的题目和内容有一个系统的,大概的了解,知道所设计的题目和内容包含哪些资源。2)设计程序采用什么编程语言并不是非常重要,关键是要有一个清晰的思路和一个完整的软件流程图,所有要先把设计原理与思路搞清楚,再把流程图画出来,这样设计起来就简单多了。3)在设计程序时,不能妄想一次就将整个程序设计好,“反复修改,不断改进”是程序设计的必经之路,发现错误也是取得成绩及成绩的一种必经之路。4)要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白自己的思路,这样也为资料的保存和交流提供了方便。计算机与信息工程系《面向对象程序设计》课程设计报告85.参考文献《JAVA程序设计教程》主编:牛晓太;清华大学出版社,2013/6源程序importjava.awt.Color;importjava.awt.Component;importjava.awt.Graphics;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.KeyEvent;importjava.awt.event.KeyListener;importjava.util.ArrayList;importjavax.swing.BorderFactory;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;importjavax.swing.JPanel;publicclassSnakeGame{publicstaticvoidmain(String[]args){SnakeFrameframe=newSnakeFrame();frame.setTitle(贪吃蛇);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVi