今天继续为大家分享一个java语言编写的贪吃蛇系统,在之前的博客中已经进行过详细的介绍。由于前段时间稍微空了一点,我对贪吃蛇游戏游戏进行了相关的优化。在本文中,我主要对贪吃蛇的优化的功能进行详细的介绍。
开发环境
开发语言为Java,开发环境Eclipse或者IDEA都可以,数据为MySQL。运行主程序,或者执行打开JAR文件即可以运行本程序。
系统框架
利用JDK自带的SWING框架开发,下载。纯窗体模式,直接运行Main文件即可以。同时带有详细得设计文档。
系统主要功能
系统开发背景
贪吃蛇游戏的设计比较复杂,它涉及面广、知识点比较多,如果不好好考虑和设计,将难以成功开发出运行流畅,界面友好的游戏。在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。因此,如何设计和开发好这个贪吃蛇游戏,对于提高Java开发水平和系统的设计能力有极大的帮助。在设计开发过程中,需要处理好各个类之间的继承关系,还要处理各个类相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。“贪吃蛇”游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。本文基于Java7,在eclipse里面开发了一个操作简单、界面美观、功能较齐全的“贪吃蛇”游戏。整个游戏程序分为二个功能模块,实现了游戏的开始、暂停、结束,背景改变,设置速度,统计游戏积分等。通过贪吃蛇游戏的开发,把课堂上学到的java技术运用到实际的项目中来。
优化后的主要功能
1 页面的登录功能。为了系统的安全,对本系统进行了加固,必须进行登录。只有数据库用户名和密码正确,才能登录到系统中。否则无法玩贪吃蛇游戏
2 增加积分排行功能。任何一个用户登录系统后,点击积分排行功能,可以看到积分排行功能
3 增加计时功能。增加游戏的计时功能,并且实时显示在主界面上
4 保存用户玩游戏的记录,同时存储在数据库中,可以在需要的时候调出来。
实现效果
1 登陆界面
2 注册界面
3 主界面
4 设置颜色
5 设置难度
6 积分排行
7 使用帮助
关键代码
public class GameFrame extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
public static void main(String[] args) {
//new GameFrame(new Controller(new Snake(), new Food(), new Ground(),
//new GamePanel(), new GameMenu(),new BottonPanel()));
}
public static void startGame() {
new GameFrame(new Controller(new Snake(), new Food(), new Ground(),
new GamePanel(), new GameMenu(),new BottonPanel()));
}
//各对象
private GamePanel gamePanel;
private GameMenu gameMenu;
private Snake snake;
//private Food food;
//private Ground ground;
private Controller controller;
private JPanel buttonPanel;
public GameFrame(Controller c) {
this.controller = c;
snake = controller.getSnake();
gameMenu = controller.getGameMenu();
gamePanel = controller.getGamePanel();
buttonPanel = controller.getBottonPanel();
setTitle("课程设计------贪吃蛇游戏");
setBounds(300,100,Global.WIDTH*Global.CELL_SIZE+250,Global.HEIGHT*Global.CELL_SIZE+60);
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane = this.getContentPane();
this.setJMenuBar(gameMenu);
contentPane.add(gamePanel);
contentPane.add(buttonPanel);
setResizable(false);
setVisible(true);
/* 让窗口居中 */
this.setLocation(this.getToolkit().getScreenSize().width / 2
- this.getWidth() / 2, this.getToolkit().getScreenSize().height
/ 2 - this.getHeight() / 2);
gamePanel.addKeyListener(controller);
snake.addSnakeListener(controller);
controller.newGame();
}
}
项目总结
(1)在写代码之前,在大脑里一定要把思路理清楚,不能模模糊糊,一定要把功能图和流程图画出来,然后根据它去实现每一个功能块,要多分析,培养一种良好的逻辑思维能力。
(2)在写代码的过程中,一定要采取就近原则,同一个功能,或者对同一个组件的设置一般要写在一块,这样写的程序比较清晰,不容易出错,也便于查找。
(3)要养成良好的注释习惯,一是有利于别人阅读你的程序,同时也有利于自己以后再看,就能很快的读懂程序,提高效率。
(4)把功能模块化,即把实现相同功能的代码段封装成一到一个类或者一个方法中,实现的时候调用即可,这样能提高代码的可读性
(5)养成创建包来存放不同功能的类,使系统的结构更加模块化和规范化。
(6)在编写代码的时候,一定要边写边调试,要适时的设置断点,或者把某些变量的值输出到控制台,通过观察和分析变量的值,便于判断问题所在,同时,需要捕获异常的一定要把异常信息打印出来,便于分析问题。