益智泡泡龙 
英文名:Puzzle Bobble
Github 另有视频,详见各视频平台。

素材资源 
参考资料 
洪水算法
Puzzle Bubble 在线游玩
Puzzle Bubble 2 在线游玩
设计与实现 

游戏规则 
这是款三消类游戏。泡泡从中间发射台发射,碰到墙壁会反弹,碰到别的泡泡或陷阱机关底部会停止。碰到泡泡停止后会对该泡泡周围进行检测,当相连的相同泡泡数超过三个时它们就会被消除。消除后,不与顶部直接或间接相连的泡泡会下落。
 随着时间流逝陷阱机关会下降,使得能够存放泡泡的区域变小。
 场地中的泡泡被全部消灭后游戏胜利。当场地中泡泡逼近发射台水平线时游戏失败。
主要的游戏对象 
场地(Playfield):存放泡泡的地方。设计为12行8列,最下面两行在关卡设计时不能设置泡泡。
 发射台(Launcher):发射泡泡
 泡泡(bubble):……
 陷阱机关(trap):随着时间流逝,它会下降,使场地中能存放泡泡的区域变小。
场地(Playfield) 
用一个二维数组存放泡泡。泡泡从发射台发射,碰到墙壁会反弹,碰到陷阱机关底部或其他泡泡时,会被加入场地中(添加到二维数组)。
这是设计的两种坐标。左侧的画布坐标即游戏中的坐标。右侧的泡泡坐标即二维数组中的坐标。圆心坐标可以相互转换 
泡泡坐标 -> 画布坐标 
将圆心的泡泡坐标转换为画布坐标,先判断其位于奇数行还是偶数行(行数从0开始计算),然后在根据列的特征计算其纵坐标。 
画布坐标 -> 泡泡坐标 

 根据逐行递增


邻居坐标 
从这里我们可以很容易的找出泡泡坐标中任意一位置的邻居坐标。
算法 
可以看一下参考资料。
消除泡泡 
对于要消除的泡泡,我使用的是下图这种:  这里记录的坐标就是要消除的泡泡的坐标。
 这里记录的坐标就是要消除的泡泡的坐标。
下落泡泡 
对于获取那些在泡泡消除后悬空的泡泡(不与顶部直接或间接相连的泡泡),与上图算法略有不同。
- 将顶部泡泡的坐标放入栈中,并从棋盘中移除。
- 从栈顶拿出一个坐标,获取直接相连的泡泡的坐标,并将它们放入栈中
- 将这些坐标中的泡泡从棋盘中移除。
- 重复2、3,直至栈为空
- 最后,棋盘中剩余的泡泡即为悬空的泡泡(会掉下去的泡泡)
