贪吃蛇代码java以及详细解释
I am xiaowutonxue. First and foremost, I would like to express my sincere gratitude to my supervisor, professor Hu Anjiang, for his intellectual guidance, invaluable instructions and comments on my thesis. It is with his valuable assistance that I have finally accomplished this thesis.
我来了。
1.设计游戏,首先就要设计界面。首先看一下我设计的一个界面。界面分为左边的游戏区与右边的控制区。游戏区包含“得分信息”和贪吃蛇的游戏区,右边控制区有“开始”“暂停”“停止”按钮,等级选择单选框以及游戏排行榜。
2.所以我们需要定义swing组件,并在类初始化时初始化这些组件,添加组件。因为后面设计游戏的时候,我们要确切知道游戏区的大小,所以这里设置游戏区固定大小值。本来想用布局来更好的管理,但作者对布局也掌握不够,所以就先设置固定大小吧。
3.定义我们的游戏。贪吃蛇游戏其实就是包含很多细小网格,然后蛇在网格中移动。蛇由一连串的网格组成,为了视觉效果,蛇身用蓝色标记,食物用红色标记,背景白色。如第一张图片所示。所以,我们需要定义二维数组,保存网格信息,保存蛇身和食物的位置信息等。初始化时,还需要添加键盘事件控制上下左右移动。
4.豆豆的位置信息是二维的,所以我简单定义了一个类用来保存二维信息。
5.接着就是实现游戏的功能了。开始,暂停,停止按钮添加事件控制游戏开始。等级按钮定义游戏难度等。
6.开始游戏后,我们定义一个定时器。蛇身按照指定的方向移动,方向是通过初始化时添加的键盘事件,键盘的上下左右按钮来控制。蛇身是连续的位置信息,保存到队列中,所以蛇身的移动就是队首增加一个位置,队尾减少位置,然后重新绘画游戏区就可以了。
在蛇身移动时进一步做吃掉食物、撞墙、撞到自己的处理。这是游戏的主要逻辑。
7.最后,游戏结束我们弹出一个对话框提示是否保存游戏得分。我们制作了排行榜信息,只保留前10名的游戏得分。首先定义了一个实现Comparable接口的游戏得分类,按得分高,时间最早来排序。
结束时保存得分信息,看是否进入到排行榜中。而之前在初始化排行榜组件时就会加载游戏排行榜信息。
通过保存和读取排行榜信息,我们也熟悉一下文件读取操作,还有集合、排序算法的功能。
9.我是传播爱与正义的小芜同学,我的回答结束。
java枚举类型使用
1.[强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束.2.[强制] 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式.3.[强制] 类名使用Uppe
java递归函数怎么一层一层地返回
递归调用是一种特殊的嵌套调用,是某个函数调用自己或者是调用其他函数后再次调用自己的,只要函数之间互相调用能产生循环的则一定是递归调用,递归调用一种解决方案,一种是逻辑思想,将一个大工作分为逐渐减小的小
java测试开发需要学什么
熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等。熟悉基于JSP和S
java接口和抽象类的区别
接口是引用类型的,类似于类,和抽象类的相似之处有三点:1、不能实例化;2、包含未实现的方法声明;3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员);
java虚拟机最新安卓版apk
android中的程序虽然是以java语言编写的,但是和普通的java不同,在apk的安装包中就能看出,他的代码和资源是相互分离的。再一个就是他的虚拟机执行代码的格式不一样。所以不能运行java程序
Java面试感觉自己啥也不会
坦然说明自己不会,不过自己可以说下第一次碰到这个问题的思路。首先和问问题的人,确认问题到底是什么,你们两个理解的问题是不是一致的。通过自己已有的知识,聊聊自己对问题的理解,比如为什么会有这个问题,可能
java测试是做什么的
1、系统框架的搭建:项目底层使用struts2 hibernate3.0 spring2、系统管理模块:实现系统登录、首页功能设计与开发、页面设计、用户管理、系统角色和权限的管理和分配、数据字典维护、
学java需要什么电脑配置
内存8G起步,现在内存便宜,可以扩展。尤其是如果需要用集成开发环境的,cpu 大点,多核比较好,java线程强大。一般来说四五千的电脑就差不多了,主要还是内存和CPU。扩展资料:Java是一门面向对象