贪食蛇游戏Java程序设计.docx
《贪食蛇游戏Java程序设计.docx》由会员分享,可在线阅读,更多相关《贪食蛇游戏Java程序设计.docx(8页珍藏版)》请在冰豆网上搜索。
![贪食蛇游戏Java程序设计.docx](https://file1.bdocx.com/fileroot1/2023-1/11/09168407-1114-4dd4-8c14-100b6be79ed9/09168407-1114-4dd4-8c14-100b6be79ed91.gif)
贪食蛇游戏贪食蛇游戏Java程序设计程序设计贪食蛇游戏Java程序设计姓名小明完成时间2014-10-31Version1.0目录一、项目目的3二、功能描述3三、功能细化3四、具体实现4五、程序调试8六、风险点分析10七、其他备注10下面附上程序文件10一、项目目的通过实现贪食蛇游戏程序设计,来回顾Java编程的一些基本方法和思想,复习一些基础语法的使用,另外,本程序设计还涉及到部分的算法,兼顾了算法的学习。
通过本程序设计,复习Java编程,打好基础。
二、功能描述1.开始游戏2.查看历史成绩3退出游戏三、功能细化1.开始游戏:
点击主界面的“开始游戏”按钮,进入游戏界面,通过方向键来控制蛇头的移动,游戏界面中随机初始化一个食物,蛇头每吃一个食物会增加一节身长,另外吃到食物后还会随机再出现一个不与蛇身重叠的食物,蛇每吃到五个食物移动速度要提升一个等级,当蛇碰到蛇身或者蛇碰到四周边界的时候,游戏结束。
2.查看历史成绩:
每进行一次有效的游戏(指不在游戏途中关闭),就会记录一次玩家的姓名和成绩,通过读写文本和排序,将历史成绩按得分从高到低排列显示在成绩排行界面中。
玩家可以直接在游戏开始前就查看之前玩家的历史成绩排行。
也可以在进行游戏后输入自己的名字,查看自己在榜中的排行。
3退出游戏点击退出游戏按钮,退出游戏窗口,结束整个程序。
四、具体实现1.各个类的介绍以及类图1)MainFrame类:
程序启动时进入的第一个界面,其包括了三个内部类:
MyActionListener,MyActionListener_che,PanelImageTest.其中,前两个类继实现ActionLiestener接口,唯一的目的是为了传参,以实现在各个窗口跳转时对前一个窗口的控制。
而PanelImageTest继承自JPanel类,是为了在主界面上设置一张背景图片。
2)GameFrame类:
在主界面中点击“开始游戏”按钮,就会实例化该游戏界面,这个类是整个游戏程序的核心,贪食蛇游戏的算法和具体实现就写在该类中。
本程序中,采用“画布”来画蛇,另MyCanvas继承Canvas类并重写其方法来实现游戏画图。
3)OverFrame类:
当在游戏界面进行游戏失败的时候,就会实例化这个类,这就是跳出来的一个提示窗,提示玩家游戏结束,并让玩家输入姓名,输入完毕后单击“确定”按钮,就会实例化ScoreFrame,即成绩排行界面,玩家可以在该界面中看到自己的成绩和排名。
另外,还实现了重新开始游戏的功能。
4)ScoreFrame类:
这是历史成绩排行的界面,可以从主界面或者游戏界面跳转过来,也可以从该界面跳转回主界面,通过读写文本以及排序,实现了保存玩家成绩并排名的功能。
5)类图:
如图4.1所示为类图结构图4.1类图2.游戏界面跳转图4.2游戏界面跳转示意图如图4.2所示,为游戏界面跳转的示意图,其中,MainFrame,GameFrame,ScoreFrame分别表示程序主界面,游戏界面,和分数排行界面。
另外OverFrame指的是游戏失败时候跳出的窗口界面,programeexit指的是结束程序运行。
3.关键代码1).GameFrame中实现蛇身增长以及蛇身跟着蛇头移动的算法2).MainFrame中实现参数传递的内部类(为在窗口跳转时控制之前窗口)3).MainFrame里面为实现添加背景图片而重写JPanel类的内部类五、程序调试1.主界面示意图如图5.1所示图5.1程序主界面2游戏界面如图5.2所示图5.2游戏界面3.游戏失败时如图5.3所示图5.3游戏失败跳出边框的界面4.历史成绩排名界面如图5.4所示图5.4成绩排行界面其中,本次游戏玩家的信息行会显示为红色。
六、风险点分析1.整个程序各个界面都是采用固定的size和location,这样当移动窗口时,界面之间的跳转就显得很突兀。
并且改变窗口大小就会破坏原来的感观。
这样设计导致不够灵活。
2.调试过程中,有时候有小概率会出现游戏屏幕闪烁,造成不愉快的用户体验,具体原因还未发现。
闪屏问题已经通过双缓存技术解决.3.成绩排行是由简单的IO流写的,由于对IO流不够熟悉,所以做得比较粗糙,不能输入中文字符,必须是英文字符否则会报错,另外可能还存在一些隐藏的尚未发现的问题。
4.游戏功能过于单一,可以设置一些其他游戏功能,例如选择游戏场景,这在后续改进的时候是可以实现的。
七、其他备注下面附上程序文件