7561 - PI - Tower of Saviors!!   

Description

Tower of Saviors <神魔之塔> 這是一款最近很熱門的APP遊戲!!這一題當然就是要來玩一下這個遊戲囉~不過重現整個遊戲實在是太困難了 , 所以我們只要實作其中的一些部分就好囉~
這一個遊戲一開始有一個5*6的盤面 , 上面有許多充滿魔力的石頭 , 每種石頭各有一個屬性 , 比如說火屬性的石頭 , 光屬性的石頭 , 在本題我們則是用大寫字母來表示一種屬性. 請看下面這張遊戲原圖了解一下~

 

我們先定義一下什麼叫做相鄰的石頭 , 相鄰就是只有"上下左右"這4個方向才有相鄰!! 遊戲一開始就是給你一個這樣的盤面 , 我們只要實作兩個動作就可以囉!!第一個動作就是"消除" , 對於某一顆石頭 , 只要可以藉由相鄰的同屬性石頭 , 連接出去 , 可以連接的到的數量如果大於等於3顆的話 , 這些石頭就會消失!!比如說下面這張圖片 , 紅色圈起來的部分裡面有4個金色的石頭 , 這些同屬性的石頭相連在一起 , 而且有4顆 , 所以這4顆都要消失!!

 

第二個動作就是"落下" , 當目前盤面上"所有"可以消失的石頭都消失了之後 , 所有石頭才一起落下 , 填補底下的空缺. (並不是一個屬性消完就落下一次 , 是"全部"可以消的都消完後才一次落下) 落下後上方就變成空的了.
很顯然的 , 石頭落下後 , 有可能又有石頭可以"消除"了~所以你必須不斷的進行"消除"以及"落下"這兩件事 , 直到沒有石頭可以再被消除才可以停止!!這時候就到了所謂的終止狀態 , 或是所謂的平衡狀態.
最後你只要把達到終止狀態的5*6的盤面給印出來就可以了: )

Input

有多組測資 , 每組測資第一行為這組測資的名字 , 名字最多不會超過15個字元(基本上名字就是case 1 2 3一直下去啦) , 接下來有5行 , 每行裡面有6個英文大寫字元 , 代表遊戲一開始的盤面. 相同的大寫字元表示相同的屬性 , 如題目所述. 測資間以一個空行隔開.

Output

每組測資先輸出一行 , 此組測資的名字 , 接著輸出5行 , 代表最後盤面的狀態 . 如果最後盤面那一格的位置為空的話 , 那個位置請輸出”_” (underline)每組測資結束後輸出一個空行.


以第4組sample為例 , 中間的3個PPP消失後 , 上面的石頭落下 , 然後再度消除AAA和CCC
以第5組sample為例 , 左上角的AAA , 左下角的YYY和右下角的DDD都消除了之後石頭落下 , 然後左下的TTT消失~

Sample Input  Download

Sample Output  Download

Tags




Discuss