消除算法-重新排布棋盘中的元素使之下一步有能够消除的元素
2014-09-24 10:41:59 4 举报
重新排列棋盘中的元素
作者其他创作
大纲/内容
设置剔除的ID1,ID2
想法02:对棋盘进行随机摆放,摆放完成后检测是否有可消除的元素,如果没有,再重新生成一张,直到生成的棋盘符合要求为止。
结束
得到当前位置左2和下2位置中元素的类型
是否生成完毕
能够得出整体得到地图,也能够判断出下一步是否还能够产生消除。如果不能够产生消除,需要对棋盘中的所有元素进行重新排列,排列后要求移动棋盘中的元素,能够产生消除。
N
按类型将当前棋盘中的元素分为不同的数组,清空地图
分布中不允许有三联情况
想法01:最简单的方法,就是保证至少有一个,也就是随机在一个部分产生一个,然后,其他所有的元素在棋盘中进行随机摆放。
检测各个类型的数组是否被剔除,如果,没有被剔除,设置他的概率。
开始
现在游戏中有6中类型的元素,要知道,不能够是哪种类型的,可以供给选择的有4个数组,5个数组,或者是6个数组。知道是从哪几个数组中得到元素后,需要从数组中随机一个元素。但是,每种类型应该是有个概率的。概率的计算应该根据数组中元素的个数来计算。个数多的,随机到的概率应该大些,概率小的随机到的概率应该小些。同样,如果数组的长度为0,那么,概率应该也是0。会不会有能够被随机的数组的长度都是0的情况。那么,程序就应该报错了。
为每个数组设置ID,ID作为程序中的识别。
得到左2数据的类型,下2数据的类型
根据各个的概率,返回一个ID。即,选中的类型。
得到各个类型元素的数量
Y
应当具有一定的随机性
每种类型元素的数量及分布
设置元素的行列,添加到棋盘中
从数组中得到一个元素,元素的类型与左2和下2的类型不同,类型应该是,所有类型中,元素比较多的类型。
检查棋盘中是否有能够消除的元素
如何分布会能够消除
怎样的排布不会产生三消的情况:如果按从左到右,从上到下的顺序,自己的左侧第一个元素和左侧第二个元素都不与自己相同,并且,自己的上侧第一个元素和第二个元素也都不与自己相同。那两个元素相同的时候与检测的元素类型不同。如果,那两个元素不相同,那么,这个元素就能够随意生成了。
在游戏过程中,可能会出现整个棋盘中无论移动哪个元素都不会出现消除的情况。这个时候要对棋盘中的元素重新排列,使之移动后有可消除的,但是,在移动之前不应有三,四,五消的情况。
0 条评论
下一页