jayying007 / Game_2048

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

简介

这是一个老少皆宜的益智小游戏。

image-20210710141830138

大二学习Java的时候,大作业搞了这个;

最近整理项目的时候,发现之前写的代码实在是垃圾。。所以重构了一遍,逻辑比之前清晰了一些。但是每个类都是单例又是什么鬼。。想做成MVC,但又感觉没完全处理好。

游戏规则

在最开始,16个宫格里面有随机两个宫格赋初始值2,其余空格均为空,为空的宫格则不显示内容。

游戏开始,用户输入上下左右的指令,带数字的宫格将根据用户输入的指令朝着指令的方向移动,所有宫格都一直移动到接触边缘或其他非相同宫格时停止。若移动时接触的是相同的宫格,则将这两个宫格进行合并。两个宫格合为一个宫格,数字叠加,即数字翻倍。此外,在移动的过程中会生成一个新的带数字的宫格,我们赋予其概率生成2,生成4。

功能面板

主界面

程序的主界面包含以下几个部分:主程序面板(4X4宫格),分数面板(当前分数和历史最高分数),功能键面板(新游戏,继续游戏,切换玩家,排行榜,帮助)。

存档&读档

该模块能使游戏支持多名用户操作,并且每个用户的数据都是独立的。存档和读档的数据包括:用户16宫格的数据情况,用户当前的分数情况,用户历史最高分数情况。其中,存档属于系统自动执行的部分。

程序支持存档是其中的一大特色,可以保存不同玩家的数据。由于目前开发的游戏是单机版,所以数据的存储不打算采用数据库的方法,使用的是本地储存,将创建一个save文件夹,其中的文件为玩家数据。文件名即为玩家名次,文件内容包括三部分:玩家最高分数、玩家当前分数、玩家当前板块内容。

玩家每进行一次操作,系统都会自动存档。

排行榜

该模块可以看到所有用户的最高分数,并按分数的高低进行排序。这部分内容可以通过table组件实现,分三列代表名次、玩家昵称、历史最高分数。

帮助

主要是让新玩家了解游戏的基本操作,其中配置了图文说明,简单易懂。

About


Languages

Language:Java 100.0%