目录
0 简介
闲来无事,搞了个2048玩玩,源码放到了github上了,先上链接 https://github.com/tzx666/Android2048
现在已经实现的功能有
经典模式
自定义模式
历史查看、游玩、删除自己自定义的模式
还没有实现的功能有
游戏的动画、声音
后台功能、创意上传、图片合并等
效果图
1 什么是2048
2048是一种游戏,核心玩法是通过左滑右滑上滑下滑去合并相同的数字,如果到达了2048则判定为胜利,如果已经无法再滑动了则可以判断失败
那么我们便可以构思出这个游戏必然有以下功能
1 基础背景,一个4*4的游戏棋盘,这里我们使用一维数组作为底层实现
2 滑动的合并与判断
3 随机位置的生成
4 游戏胜利和结束条件的判断
5 引申而来的,我们同样可以对游戏使用mvc架构,即游戏显示什么和实际逻辑是什么并无关系,只要定义符合合并机制,那么无论显示什么都是合理的(雾)
2 抽象类的定义
根据上述的描述,我们不难定义出接口(其实应该用抽象类更合理的说)
interface Game2048 {
fun init(context:Context);
fun init(context:Context,size:Int);
fun start();
fun moveleft();
fun moveright();
fun moveup();
fun movedown();
fun addRanrom();
fun isEnd();
fun isFirstVisiable(position:Int):Boolean;
}
其中 init()负责初始化数组,isFirstVisiable()负责动画出现的判断,movexx函数负责游戏过程中的合并
3 游戏逻辑的实现
2048的游戏逻辑比较简单,参考代码应该很好懂
/*
*@author tzx
*@descrption 2048的逻辑实现
*/
public class Game2048impl implements Game2048 {
private int score;
private int[] map;
private boolean[] isfirstAppe