作者jijuan (鸡卷)
看板GameDesign
标题[请益] 类似动物管理员的游戏(三)
时间Thu Apr 30 16:05:38 2009
又来请教各位前辈了,
先前方块落下的问题已经解决了,
我采用的是两组阵列的方式,
一组阵列显示用,
另一组阵列专门用来负责显示移动的效果。
这次要请教的问题是关於当消去一组方块後,
交换任两个相邻的方块後有没有至少一组方块是可以消除的(三个以上相连)。
我目前的想法如下图
http://meetblake.myweb.hinet.net/pic.jpg
左边的case,对索引(i, j)的方块来说,要检查4次
(1): (i, j)->(i-1, j-1)->(i-2, j)
(2): (i, j)->(i-1, j+1)->(i, j+2)
(3): (i, j)->(i+1, j+1)->(i+2, j)
(4): (i, j)->(i+1, j+1)->(i, j-2)
右边的case,对索引(i, j)的方块来说,要检查12次
(1):先检查(i, j)与(i, j-1)的key值是否相同,如果相同再检查其它三个绿色方块
(i+1, j+2)、(i, j-3)、(i-1, j-2)中是否有任一个key相同的。
(2):先检查(i, j)与(i-1, j)的key值是否相同,如果相同再检查其它三个绿色方块
(i-2, j-1)、(i-3, j)、(i-2, j+1)中是否有任一个key相同的。
(3):先检查(i, j)与(i, j+1)的key值是否相同,如果相同再检查其它三个绿色方块
(i-1, j+2)、(i, j+3)、(i+1, j+2)中是否有任一个key相同的。
(4):先检查(i, j)与(i+1, j)的key值是否相同,如果相同再检查其它三个绿色方块
(i+1, j+2)、(i+3, j)、(i+2, j-1)中是否有任一个key相同的。
目前大小是8*8,所以如果(i+n)、(j+n)大於8或者是(i-n)、(j-n)小於-1的就不考虑
了这是比较直觉的想法,就是一个一个去检查。不知道这方面各位前辈有没有什麽比
较好建议或是想法,请赐教。
另外第二个问题是,如果检查完後发现目前已经没有任何方块可以再消去了,那必须
补一个新的8*8方块组给玩家,那该怎麽确保产生的方块组至少是有一组(多组) 以上
可消去的组合呢?
--
有两个人我第一次看他们打球
我就知道他们一定会拿冠军
一个是Shaquille O'Neal
另一个则是Timothy Duncan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.249.2.10
1F:推 Fenikso:1. 才8*8而已 速度其实没有很重要 04/30 18:57
2F:→ Fenikso:2. random, 不能消再重rand一个就好 04/30 18:58
3F:推 killman:你也可以设计几组固定有解的组合 乱数摆上去 04/30 19:39