贪吃蛇Java课程设计 下载本文

4.程序设计

贪吃蛇游戏各模块及程序流程有若干类实现,下面阐述各个类的设计与实现。

4.1GamePanel类

该类包含六个主要的功能方法,分别是:

(1)构造函数public paintComponrnt (),主要用来设置用户控制面。 (2)public void keyPressed()方法,主要用来对游戏的按键操作进

行处理。

(3)void drawFood() drawRocks()主要用来绘制游戏界面食物和石

头。

(4)public void drawfenshu ()方法主要用来改变积分器。 (5) public void drawPause()方法用来实现暂停 (6)void drawGameOver()方法用来控制游戏的开始界面。 4.2.Snake类

该类包含多个功能方法,分别是:

(1) 构造函数public Snake(),该方法主要用来初始化游戏界蛇

的位置及大小且给其一个初始方向。用一个LinkedList,用来保存蛇的每一节;在利用drawMe()方法遍历LinkedList中保存的节点来画出游戏界面中的蛇。

(2) public void move()方法主要用来改变蛇的运动方向,

首先判断游戏是否暂停,还有是否GameOver 跳出该方法,蛇不能移动否则先保存它的尾节点,在将其尾节点删除,获取其头节点的XY坐标,如果你同时按下2个按键其和为0则按原始方向移动,在获取到移动后XY坐标,将其加在蛇的头部

(3) public boolean eatRocks()方法使实现蛇吃石头的函数,首

先判断蛇身体的头节点是否和石头重合如果重合,去除蛇身体的

4

头节点,在再其尾节点出加一节身体,并设置Life为false。 (4) public boolean eatBody()方法实现蛇吃到自己的身体。 (5) public Boolean eatFood()方法实现蛇吃到食物

5.分析问题与解决方案

5.1 问题处理

问题一: 不能实现游戏中最高分数的存储与读取

使用.properties来存储其最高分数

在用msg()方法来实现其对应数据的读取与存储

问题二:蛇在吃掉食物时,画出其身体的方法 将先前去除的尾节点在重新加在其尾部 问题三:图形界面的覆盖

使用双缓冲技术:双缓冲技术在很多动画中被采用。主要

原理是创建一幅图像,将每一帧画入图像,然后将整个图像一次画到屏幕上去,将其原来的东西覆盖掉。

问题四:线程的使用

如何将其节点无限重画,及睡眠时间 使用死循环

问题五:实现键盘操控游戏

使用键盘监听器

5

6小结与体会

回顾这个设计过程,我学到了许多书本上没有学到的知识。通过这次自己制作的软件,丰富了自己的实践技能,扩展了本专业的知识面,使我受益非浅,同时也体验到了搞软件开发的困难度。在这次设计的同时,我又从中学到了许多东西。但由于我对这样的软件开发还只是一个开始,了解的不多,这其中或许还有很多的不足,有些模块做得不是很好,界面的设计及整体的布局还比较简单,没有突出特色出来,这也可能是我这个系统的不足之处,在这里也恳请各位老师能够对我的作品指明不足并加以改正。

总之,在这一次的课程设计过程中,我查阅了大量的资料,对Java有了一点初步的认识,对于软件工程这些辅助性的教材也巩固了不少,为我这次的课设提供了很大的帮助,锻炼了我的能力让我掌握了一门新的程序设计语言:java语言,系统地学习了数据库方面的知识,并更进一步提高了我在程序设计、调试方面的技巧。更重要的是,它还让我认识到了自己的不足,在编程方面,我仅仅是刚刚入门而已,以后的道路任重道远,需要我不断的丰富自己、充实自己,这样才能在程序设计方面有所收获。

6

参考文献(资料)

[1] 谢希仁. 计算机网络(第五版). 北京:电子工业出版社,2008 [2] 胡小强 计算机网络. 北京:北京邮电大学出版社2005

[3] 陈轶.姚晓昆编著.Java程序设计实验指导.北京:清华大学出版社,

2006

[4] 杨昭编著.二级Java语言程序设计教程.北京:中国水利水电出版社,

2006

[5] 赵文靖编著.Java程序设计基础与上机指导.北京:清华大学出版社,

2006

[6] 赵毅主编.跨平台程序设计语言——Java.西安:西安电子科技大学出

版社,2006

[7] 王路群.Java高级程序设计.北京:中国水利水电出版社,2006 [8] 雍俊海编著.Java程序设计习题集.北京:清华大学出版社,2006 [9] 朱福喜编著.Java语言习题与解析.北京:清华大学出版社,2006 [10] 吴其庆编著.Java程序设计实例教程.北京:冶金产业出版社,2006