三消游戲 - 方陣消除

0 規(guī)則

只要三種同色的在一行或一列即可消除

1 數(shù)據(jù)結(jié)構(gòu)

一個(gè)色塊含這些內(nèi)容

  • 色塊的類型:type
  • 色塊的顏色:color
  • 色塊空間位置: Index(row, col)
  • 色塊序列位置: IndexCount
  • 色塊圖形位置:Position

2 坐標(biāo)轉(zhuǎn)換

色塊的空間,序列和位置是可以相互轉(zhuǎn)換的

// Index -> IndexCount
IndexCount = row+col*ROW_MAX;
// IndexCount -> Index
Index = {IndexCount%ROW_MAX, floor(IndexCount/ROW_MAX)};
// Index -> Position
Position = {Index.row*Unit_WDistance, Index.col*Unit_HDistance};
// Position -> Index
Index = {round(Position.x/Unit_WDistance), round(Position.y/Unit_HDistance)};

3 方陣

二位矩陣,對(duì)矩陣作出標(biāo)示,可以改變二維矩陣為任意形狀


不規(guī)則二維矩陣


4 預(yù)判

  • 檢測(cè)當(dāng)前點(diǎn)1并檢測(cè)同向相隔一格的相同點(diǎn)2,當(dāng)成立后,檢測(cè)當(dāng)前臨格的隔壁點(diǎn)3是否為相同點(diǎn),如果符合條件,說(shuō)明可消除


  • 檢測(cè)當(dāng)前點(diǎn)1并檢測(cè)相鄰點(diǎn)相同2,當(dāng)成立后,檢測(cè)第三個(gè)位置的周圍點(diǎn)3是否有相同點(diǎn)


  • 檢測(cè)方向?yàn)閺淖笙蛴?,從上向下檢測(cè)


5 消除檢測(cè)

  • 單向三連最好檢測(cè),順序檢測(cè)臨近的顏色即可
  • 縱橫都存在的情況下,其實(shí)縱向和橫向單獨(dú)去檢測(cè)即可,對(duì)于橫向不進(jìn)行縱向忽略,對(duì)于縱向,不進(jìn)行橫向忽略(同向忽略已檢測(cè)的點(diǎn))

6 添加/塌方

消除產(chǎn)生的空穴,需要及時(shí)添加

  • 消除后會(huì)產(chǎn)生空隙,算出每列上空需要幾個(gè)新色塊來(lái)填補(bǔ)空隙。第一個(gè)圖需要3個(gè) , 剩下兩個(gè)圖需要5個(gè)
  • 塌方的規(guī)則
    • 如果塌方上部是死區(qū),則從斜上方下落
    • 優(yōu)先從左上方落下,其次是右上方
    • 如果離兩斜上方超過(guò)一個(gè)單位,則從橫向擠壓
  • 不規(guī)則形狀的塌方方式


  • 第二種不規(guī)則方式塌方


6.1 開(kāi)心消消樂(lè)的塌方方式是傳送,不進(jìn)行斜向擠壓,傳送會(huì)從上到下穿過(guò)阻礙掉落到指定位置,傳動(dòng)也可以分開(kāi)不同區(qū)域,進(jìn)行錯(cuò)位傳送,挺有創(chuàng)意的方法

7 循環(huán)

當(dāng)執(zhí)行#6時(shí),可能會(huì)產(chǎn)生新的可消除元素,這時(shí)候,需要進(jìn)行重復(fù)檢測(cè)
->刪除檢測(cè)->添加->刪除檢測(cè)->
這樣循環(huán)下去,直到無(wú)法刪除/無(wú)法添加為止

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 不同圖像灰度不同,邊界處一般會(huì)有明顯的邊緣,利用此特征可以分割圖像。需要說(shuō)明的是:邊緣和物體間的邊界并不等同,邊緣...
    大川無(wú)敵閱讀 14,123評(píng)論 0 29
  • 專業(yè)考題類型管理運(yùn)行工作負(fù)責(zé)人一般作業(yè)考題內(nèi)容選項(xiàng)A選項(xiàng)B選項(xiàng)C選項(xiàng)D選項(xiàng)E選項(xiàng)F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚(yú)閱讀 10,543評(píng)論 0 13
  • 1、通過(guò)CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明AI閱讀 16,203評(píng)論 3 119
  • 《曉說(shuō)》這個(gè)由高曉松主持的節(jié)目有空聽(tīng)聽(tīng)還挺有意思。其中我聽(tīng)到了一個(gè)觀點(diǎn),在人類發(fā)展史中,到底是人類馴服了小麥,使小...
    小卡卡愛(ài)閱讀 1,010評(píng)論 0 0
  • 什么是真自由?以前想當(dāng)然的以為自由是我想做什么就做什么,自由有兩種形式,如永澄老師的圖所示: ·free to :...
    盛某閱讀 325評(píng)論 0 0

友情鏈接更多精彩內(nèi)容