吴昊品游戏核心算法(新春特别篇)—— 吴昊教你玩泡泡龙(模拟)(HDOJ 1547)

泡泡龙(パズルボブル,Puzzle Bobble,Bust-a-Move),TAITO在1994年首次发布,是一个十分流行的弹珠游戏。从下方中央的弹珠发射台射出彩珠,多于3个同色珠相连则会消失。也支持双人游戏,不过此模式下,两个玩家互相竞争:一个消除大片泡泡会转移到对方阵地。

  (Source:HDOJ 1547)这里有如下两个假设,一个假设是关于泡泡的消除的解释,另一个假设有些BT,我们假设所有的残局都在于游戏界面的左上角,也就是说,射击的时候(假设为直线射击,并且包括反弹,是可以击中所有的外表面层的泡泡)

   泡泡消除的方式:

   主要有爆掉和下坠两种方式,前者是后者的基础。

  (a) 泡泡爆掉

  当玩家主动令游戏区形成 3 个或以上的同色泡泡相连,则这些泡泡将爆掉。 

  (b) 泡泡下坠

  当爆掉的泡泡造成连接的异色泡泡失去挂点,则这些异色泡泡将下坠,算入消去的泡泡中。(下坠中的泡泡不对其他泡泡发生作用)

 

  输入和输出的格式如下,前面两个数字表示泡泡所在区域的高度和宽度,而后面的坐标(2,1)表示最新的一个泡泡打出的位置,位置的标记中,x轴是从上往下扫描的,而y轴是从左到右扫描的,假设起点都是1(有a到z一共26种泡泡,标识空缺的位置可以考虑大写字母E)

  Example:

  Input:

   2 2 2 1

   aa

   a

  输出则为一个数字,表示最新的一个泡泡所产生的效应,就是令多少泡泡下落了,这里需要考虑上述所说的(a)和(b)两种方式,如果Input为上面所说的话,则Output如下:

  Output:

  3

 

你可能感兴趣的:(算法)