跪求一游戏算法(字符串问题)
彩球消消,消失类手机游戏,游戏中设定五种颜色球:红黄蓝绿紫,还有一种彩球,可充当任意颜色使用,游戏中玩家移动球的位置,使相同颜色的球连成一线(至少五个)即可消掉那一线的球,现在的问题是,当玩家移动普通颜色球很比较容易判断是否已经连成一线并且是哪种颜色,但是当玩家移动彩色球的时候,就不好判断了,我想是否能对彩球所在行列进行扫描,如果能拿该怎么扫描呢,如果不能,那怎么办呢?
这个问题是否可扩展到在一个字符串中,有a,b,c,d,e五种字母,还有x充当任意字母,那么随意输入一个字符串(可包含空格),那么求这个字符串中是否有相同五个字母连在一起的子串 比如输入ab cdxxdde a. 则子串dxxdd为符合条件的子串,望大牛指点
[解决办法]
我也为这个问题烦恼····球大神来解答一下··
[解决办法]
求打错了··
[解决办法]
用按位方法想这个行不行啊?
ABCDEX变成二进制
A = 1
B = 10
C = 100
D = 1000
E = 10000
X = 11111
然后如果有五个按位与后为1的条件成立,那么就消去?
[解决办法]
不对啊,是按位与后不为0,就是与后是本身,大概是这种思路,不知道行不行。
[解决办法]
lz,我看你一开始说的好像是二维的,然后又按字符串说了一遍怎么又成一维的了。你转化的也不等同呀。
[解决办法]
不是很行得通的意思是?
[解决办法]
“游戏中玩家移动球的位置”这句话不明白。
何为“移动”?是交换还是怎么着,没说清。
[解决办法]
“游戏中玩家移动球的位置”这句话不明白。
何为“移动”?是交换还是什么,没说清。
[解决办法]
米会,学习学习
[解决办法]
学习学习
[解决办法]
蛮干行不行?
loop:
nextObj = curObj.nextCol
if(nextObj == curObj || nextObj == Omnipotent)
{
++rank//if rank >= 5,eliminate till end or differ
}
curObj = nextObj
//loop
[解决办法]
就是逐行检查,逐列检查,效率最高。
[解决办法]
哦,不是。
你移动谁就只需检查它所移到的那个位置的行列就行了。
[解决办法]
逐行伫列检查, 连续有5个相同 有5个连续的就可消去,彩色的就直接不检查跳过
[解决办法]
看一下!!
[解决办法]
整个游戏行列并不是很多,并不存在性能问题。遍历有变化的行列就可以解决问题,但如果遍历所有的行列会具有很好的容错性。简单的办法才是最好的办法。
[解决办法]
扩张kmp算法可以参考一下