实例,创建窗体显示排行榜数据,玩家点击、确定清空数据后,调用 Chart 类的方法,
将容器、数据文件全部清空;玩家点击切换账号时重新创建初始化 Account 类变量,切
换成功后调用 SnakeDemo 类的函数,将新 ID 显示在游戏界面。
(2)Chart 类:
管理玩家账号、得分信息,初始化时查询数据文件,将数据读入 TreeSet 容器进
行排序;可查询是否存在指定账号;可获得成绩最高的十条玩家信息;可添加玩家、玩
家分数,并将其存入数据文件。
(3)Player 类:
玩家信息类,存储玩家 ID 与分数,其中的方法可以返回玩家 ID 和分数。
(4)Compare 类:
继承 Comparator 接口,重写 compare( )方法,使得 TreeSet 能够存储同 ID、同
分数的玩家信息,并进行排序,代码如下:
public int compare(Object obj1,Object obj2)
{
Player per1 = (Player)obj1;
Player per2 = (Player)obj2;
int num = Integer.valueOf(per1.getScore())
.compareTo(Integer.valueOf(per2.getScore()));
return num == 0 ? 1 : num;
}
(5)Account 类:
玩家注册账、登录号时,通过 Game 类对 Chart 类中管理的 TreeSet 容器进行遍
历,查询是否存在指定账号,若存在则可登录,若不存在则可注册,并由 Game 类调用
Chart 类的函数将新注册的账号添加到容器和数据文件当中。
(6)Music 类:
玩家进入游戏界面后,Game 初始化 Music 类,对 audio 文件夹中进行遍历,并
播放 wav 类型音乐,具有循环播放、暂停播放、切换歌曲等功能。
(7)SnakeDemo 类:
包含游戏过程的主逻辑,创建游戏区域、蛇的身体与头部、食物,具有控制移动、
吃食物等逻辑,并且创建、初始化 Timer 类显示时间;玩家在碰到墙壁、蛇的身体或者
达到最大长度,概该轮游戏结束,并调用 Game 类中的函数,进而调用 Chart 类的函数,
将玩家游戏成绩存入容器以及数据文件;玩家点击调节难度、调节初始长度时,Game
类会调用该类的方法,将相应变量改变,并在游戏界面右侧更新显示。
(8)Timer 类:
在玩家的操作改变游戏状态时,SnakeDemo 类会调用该类的相应方法改变计时
状态,并将其显示在游戏界面右侧。