← 開發手記
《對對碰》遊戲畫面

對對碰的設計手記:7 格暫存槽與保證有解的盤面

PiuPiu Games 團隊 · 2026 年 10 月 28 日 · 三消疊塊 · 暫存槽 · 關卡生成

▶立即免費玩

《對對碰》是 PiuPiu Games 上線的第一款遊戲,也是我們改最多次的一款。玩法看起來很單純:牌一層層疊在桌上,點出三張相同的圖案就消除,把整盤清空就過關。但「三消疊塊」這種遊戲好不好玩,關鍵不在消除那一下,而在兩件事:下方那條暫存槽的規則,以及每一關的盤面是怎麼排出來的。這篇手記說明我們在這兩件事上的取捨。

一個規則決定了整個遊戲:7 格暫存槽

你點下的每一張牌都會先放進畫面下方的暫存槽,湊滿三張相同圖案才會消掉。暫存槽塞爆就輸,這是唯一的失敗條件。所以整個遊戲的緊張感,其實都來自這一條細細的槽。

我們的暫存槽有 7 格,但判定方式有一個細節:第 7 張放進去之後,如果不能當場湊成三消,就直接判輸。換句話說,第 7 格只收「致勝的那一張」,你真正能囤牌的空間只有 6 格。

為什麼不乾脆做成 6 格?因為 7 格的畫面給了玩家一個很重要的東西:最後一搏的機會。槽裡已經有 6 張、其中兩張是橘子,這時場上剛好露出第三顆橘子——你點下去,第 7 格亮起、三張橘子一起消掉,槽位瞬間空出三格。這個「差一點爆、結果救回來」的瞬間,是三消疊塊最讓人上癮的時刻,而第 7 格就是為它保留的。

我們也在攻略頁和遊戲說明裡把這條規則講得很直白:「把它理解成 6 格倉庫加 1 格只收致勝牌」。規則本身有點反直覺,與其讓玩家輸了才發現,不如一開始就說清楚。

為什麼上層牌只蓋住下層的「一角」

很多疊塊遊戲的牌是整張蓋住下面的牌,你完全不知道底下是什麼。我們的做法不一樣:上層的牌只以「半張牌」的距離偏移,蓋住下層牌的一角,所以下層的牌永遠會露出一部分圖案。

這個決定讓遊戲從「碰運氣」變成「可以規劃」。點牌之前,你可以先看看底下露出來的角:如果第三顆葡萄已經露出半張臉,那現在收兩顆葡萄就很安全;如果場上完全看不到第三張,收進槽裡就可能卡很久。露出的角是免費的情報,懂得讀它的玩家,明顯能打得更遠。

被壓住的牌會變暗、不能點,沒被壓住的牌是亮的。這個顏色差異我們調過好幾次,最後在牌面加上麻將式的厚度,可點的牌亮、被壓的牌降低飽和度,讓手機上一眼就分得出來。

難度要從哪裡來?我們試過一條走不通的路

早期我們嘗試過一種很「精緻」的難度設計:盤面精簡、牌數不多,但每一關都經過計算,只有一條很窄的解法,一步走錯就無法挽回。我們甚至做了一種「鋼索頭目關」,整關只有唯一解、零容錯。

結果試玩的回饋很一致:這不是難,是窒息。玩家輸了不會想「下次換個順序」,只會覺得被設計陷害。反而是另一種盤面大受歡迎:滿版、很多層、牌多到像一座小山,雖然後期不可能每一步都算清楚,要靠一點運氣和道具,但清空那一刻非常爽快。

所以我們把難度的來源重新定義成三件事:份量壓力(牌很多)、槽位管理(暫存槽怎麼排)、還有一點運氣。唯一不能破的底線只有一條:每一關都必須有解。

每一關的盤面是怎麼長大的

對對碰的關卡沒有上限,所以我們沒有手工排關,而是寫了一條「份量曲線」,讓每一關的規模隨關卡數慢慢長大:

三條曲線各自在不同時間到頂:種類在第 79 關達到 18 種,層數在第 81 關達到 11 層,牌數在第 91 關達到 240 張。之後的關卡維持在最大份量,難度改由每一關不同的排列來決定。

圖案種類為什麼要慢慢加?因為種類越多,同一種圖案的三張牌就越分散,越難在場上同時看到。前期種類少,玩家很容易湊組,可以專心熟悉規則;後期種類多,就必須開始讀露出的角、規劃順序。層數則決定「看不見的東西有多少」,層數越多,需要先拆開上層才能拿到的牌就越多。

牌數還有一個限制來自手機:240 張、11 層已經是手機直向畫面裡、每張牌還能保持手指點得準的大小上限。生成盤面時如果排得太寬,我們會換一組亂數重新排,確保每一張牌都點得到。

「保證有解」是倒著做出來的

每一關都有解,聽起來需要一個很聰明的解題程式去驗證,但我們用的是一個更簡單、也更可靠的方法:倒著排。

生成盤面時,我們先決定所有牌的位置,但還不決定圖案。接著從最上層開始,每次挑出三張「目前沒有被壓住」的牌,把它們設成同一種圖案,然後假裝把它們拿走;再從剩下的牌裡挑三張沒被壓住的,設成下一種圖案……一直到所有牌都分配完畢。

這樣排出來的盤面,天生就存在一條解法:照我們分配的順序,每次拿三張同圖案的牌,暫存槽最多只會用到 3 格就消掉了。這條解法離 6 格的上限還很遠,代表一般關卡留了相當大的容錯空間,輸掉通常是順序選錯,不是牌面本身無解。

當然,玩家看不到這條解法,而且滿版多層的盤面裡,通常還有很多條別的路。我們想要的正是這種感覺:路一定存在,但要自己找。

我們實際量過:一般關卡的容錯有多大

「輸掉通常是順序選錯」這句話,我們用生成程式本身驗證過。做法是每個關卡各生成 200 個盤面,讓兩種假想玩家去打,都不用任何道具:一種是亂點,另一種是很樸素的策略——只看目前可以點的牌,有哪一種圖案能湊滿三張就先拿,不然就拿暫存槽裡已經有的圖案。這個策略不會讀露出來的角,也不會退回。

關卡種類/層數/牌數開局可點的牌樸素策略通關率亂點通關率
15/3/24約 30%100%約 38%
106/3/45約 28%100%0%
309/5/93約 18%100%0%
5013/7/141約 15%約 99%0%
8018/10/213約 13%約 95%0%
10018/11/240約 12%約 96%0%

這張表說明了兩件事。第一,亂點在第 1 關還有約四成機會,到第 10 關就完全過不了,對對碰確實要動腦;第二,只要守住「能湊三就先湊、別亂囤新圖案」這條紀律,就算到了 240 張的滿版盤面,不用道具也大約每 20 盤只會輸 1 盤。剩下那一點,就是道具存在的理由。玩家最常卡住的地方,正是違反這條紀律:看到新圖案就收,槽裡同時擺著五、六種只有一張的牌,最後被一張湊不起來的牌撐爆。

另一個數字是「開局可點的牌」:第 1 關大約三成的牌一開始就能點,到了第 100 關只剩一成多,其餘九成都壓在下面。這就是後期關卡要靠讀露出的角來規劃的原因。生成本身則很快,我們在測試電腦上量到最大盤面最慢也只要約 10 毫秒。

道具:給得大方,是刻意的

既然後期的難度包含運氣,道具就是平衡運氣的工具。每一關給三種道具:

退回的次數跟著盤面大小成長,是因為盤面越大,需要「試試看、不行就退」的次數越多。我們不希望玩家在第 80 關因為點錯一張牌就前功盡棄,那只會讓人想關掉遊戲。退回是零風險的後悔藥,給得大方,玩家才敢在大盤面裡探索。

另外,當多層關卡被拆到「場上所有剩下的牌都沒被壓住」時,遊戲會自動幫你依最佳順序收尾。這時已經沒有任何未知資訊,剩下的點擊只是勞動,沒有思考的樂趣,所以我們直接替玩家做完。

同一顆洗牌鈕,登入和遊客不一樣

遊客模式的洗牌是「保證可解的重排」:程式會對剩下的牌重新跑一次倒著排的配牌,而且把暫存槽裡正在湊的圖案排在最先能拿到的位置,讓你洗完就能清出槽位。只有在盤面形狀本身卡住時,才退回純隨機。

登入後打的計分局不一樣。為了讓排行榜可信,計分局的盤面由伺服器用種子生成,你的每一步操作都會送回去重播驗證。重播要求每一步都是確定的,所以計分局的洗牌改成「依種子的隨機重排」,不保證洗完一定有解;同樣的理由,計分局爆槽時不提供看廣告續玩,因為清空暫存槽會讓伺服器的重播對不上。遊客局則可以每關看一次廣告、清空暫存槽繼續。早期版本只清空暫存槽,結果被清掉的牌在盤面上留下了落單的另一半——槽滿時裡面至少有 4 種圖案,續玩後盤面至少有 5 張牌永遠湊不成三,幾乎必然再爆一次。現在續玩會把這些同款的牌一起收走,讓盤面每種圖案都回到 3 的倍數。這是刻意的取捨:一個可信的排行榜,比多一次救援重要。

試煉之地:把容錯拿掉會怎樣

一般關卡留了大量容錯,但總有玩家想要真正的挑戰。我們把當初「鋼索」的想法改了形式,做成一個獨立的手工關卡:試煉之地。

試煉之地只有 30 張牌、10 種圖案各 3 張,但排列方式像一面磚牆:每一層都和下一層錯開,每張下層牌都被好幾張上層牌壓住,解牌順序被鎖得非常死。這一關禁用洗牌、退回只有 2 次、提示只有 1 次,也不會自動收尾。

我們用電腦把這一關所有可能的走法窮舉過,確認了三件事:

和當初的鋼索頭目關不同,試煉之地是玩家自己選擇要挑戰的:它不消耗愛心、不影響排行榜,輸了也不會失去進度。等愛心回復的空檔去磨一磨,通關之後還能分享戰績。同樣是零容錯的設計,放在「自願挑戰」的位置,感受就完全不一樣。

計分:為什麼排行榜先比關卡

每消除一組三張得 10 分,每過一關再加 50 分。分數以「一輪」累積:開始一輪扣 1 顆愛心,之後連續過關不再扣,直到輸掉或退出為止。

排行榜以最高關卡排名,同關卡才比分數。我們這樣設計,是因為對對碰的核心成就感是「我爬到了第幾關」,而不是單一局刷了多少分。一個玩家可能分好幾次、慢慢爬到很高的關卡,這種耐心也值得被看見。

平台的第一款遊戲,也是改最多次的一款

對對碰的第一個可玩版本在 2026 年 6 月 16 日完成,一開始就帶著帳號、排行榜、好友、愛心和廣告的後端。它比平台本身還早:6 月 23 日,我們把它的帳號與愛心系統抽出來,做成所有遊戲共用的平台外殼,之後每一款新遊戲都接在這套外殼上。之後的幾個關鍵改版:6 月 17 日加入自動收尾;6 月 22 日改用現在的倒著排生成法與伺服器計分,鋼索頭目關也在這時淘汰;7 月 17 日換上 22 張像素風的水果蔬菜牌面;10 月 24 日把牌桌改成木紋、牌面做出麻將式的厚度,並補上飛牌落槽與消除的演出。

第一個版本完成當天,我們還修掉一個差點讓人「假過關」的 bug,起因是試玩回報「場上剩葡萄和橘子,卻過關了」。對對碰判斷過關的方式很單純:盤面沒有牌了就過關。這之所以成立,是因為每一種圖案在盤面上都剛好是 3 的倍數張,盤面清空時暫存槽也一定剛好消完。最早的配牌程式有一條備用路徑會把牌數截斷,讓某一種圖案不是 3 的倍數,結果玩家清空盤面時,槽裡還留著湊不成組的牌,遊戲卻判定過關。修正後,「每種圖案都是 3 的倍數」成了配牌和所有道具都不能破壞的底線:洗牌只在剩下的牌之間交換圖案,不增減任何一種的數量。

寫在最後

回頭看,對對碰最重要的一課是:難度和挫折是兩回事。玩家願意接受很難的關卡,前提是他相信「這關一定過得了,是我還沒找到方法」。所以我們把最多力氣花在看不見的地方:保證有解的生成方式、給得大方的退回、讀得出情報的半張牌偏移。至於真正想挑戰極限的玩家,就交給試煉之地。

讀完幕後,實際玩一局

免下載、免安裝,手機與電腦瀏覽器直接玩

▶立即免費玩對對碰

看《對對碰》完整攻略 →

相關開發手記

更多內容:開發手記總覽 · 攻略總覽 · 關於我們 · 回首頁