技術(shù)帝:俄羅斯方塊可以永遠(yuǎn)的玩下去嗎?
- 來(lái)源:3DM-迪奧死神
- 作者:迪奧死神
- 編輯:ChunTian
我們首先要證明一個(gè)引理:在循環(huán)中的任意時(shí)刻,通道n的實(shí)際循環(huán)區(qū)內(nèi)絕對(duì)不可能出現(xiàn)形如“口■”的兩個(gè)并排的格子。如圖4.1,假設(shè)圖中星號(hào)方塊所在行是通道n的實(shí)際循環(huán)區(qū)內(nèi)位置最低的“口■”的結(jié)構(gòu)。假如這一行被消掉了,又由歸納假設(shè),不存在哪個(gè)“S”形方塊跨越了該通道的左邊界,因此只有一種可能:某個(gè)“S”形方塊從左側(cè)面擠了進(jìn)來(lái)(如圖4.2)。但這樣一來(lái),我們又產(chǎn)生了一個(gè)更低的“口■”,矛盾。這就是說(shuō),星號(hào)方塊所在行一直沒(méi)被消去。但這也是不可能的,因?yàn)閷?shí)際循環(huán)區(qū)內(nèi)是一個(gè)新陳代謝、以舊換新的更替過(guò)程,每一行最后都是會(huì)被消除的。
接下來(lái),考慮命題P(n+1)。要想讓“S”形方塊占據(jù)通道n的格子,只有圖5這四種情況。但是,由于我們之前證明了通道n中不能存在“口■”,因此在這個(gè)“S”形方塊落下之前,星號(hào)方塊都是已經(jīng)有了的了。注意到,每一個(gè)“S”形方塊的下落都致使“■口”形結(jié)構(gòu)的減少,但第一種情形除外——它消除了一個(gè)“■口”形結(jié)構(gòu),但在其上方帶來(lái)了一個(gè)新的,使得“■口”形結(jié)構(gòu)個(gè)數(shù)保持不變。沒(méi)有哪種情形能夠增加“■口”的個(gè)數(shù)。但是,通道n的“■口”形結(jié)構(gòu)個(gè)數(shù)應(yīng)該是恒定的,因?yàn)樗谝粋€(gè)循環(huán)區(qū)里。因此,只有第一種情況才能夠被接受。
因此,僅含有“S”形方塊的循環(huán)只有一種情況——“S”形方塊在各個(gè)通道內(nèi)重疊,填滿并消除若干行后回到初始狀態(tài)。實(shí)際循環(huán)區(qū)內(nèi)的每個(gè)通道都是一個(gè)模樣:底下是0個(gè)或多個(gè)“■■”,頂部一個(gè)“■口”。注意,最右側(cè)那個(gè)通道的最頂端是一個(gè)“■口”,右邊這個(gè)空白一輩子也不可能用“Z”形方塊填上。也就是說(shuō),在一個(gè)只含“S”形方塊的循環(huán)區(qū)內(nèi),必然會(huì)有某一行,它的最右側(cè)是一個(gè)“■口”,它保證了該行不能僅用“Z”形方塊消掉。如圖6所示,箭頭所指的行無(wú)法單用“Z”形方塊消除,因?yàn)樾翘?hào)位置不可能用“Z”形方塊填充。
下面我們給出游戲機(jī)害死人的算法:
1. 不斷給出“S”形方塊并顯示下一個(gè)方塊也為“S”,直到出現(xiàn)一個(gè)循環(huán);
2. 給一個(gè)“S”形方塊并顯示下一個(gè)方塊為“Z”;
3. 不斷給出“Z”形方塊并顯示下一個(gè)方塊也為“Z”,直到出現(xiàn)一個(gè)循環(huán);
4. 給一個(gè)“Z”形方塊并顯示下一個(gè)方塊為“S”;
5. 跳回1并重復(fù)執(zhí)行。
這樣的話,玩家為什么會(huì)無(wú)解呢?由上面的結(jié)論,在第1步后,游戲區(qū)域中出現(xiàn)了一個(gè)不能用“Z”消除的行。即使再給你一個(gè)“S”形方塊,這一點(diǎn)仍然無(wú)法挽救,因?yàn)樘畛湫翘?hào)空格的唯一途徑就是插一個(gè)“S”進(jìn)去,但這立即又產(chǎn)生了一個(gè)“Z”永遠(yuǎn)放不進(jìn)去的空位。然后,玩家就拿到了一大堆“Z”,最終必然會(huì)產(chǎn)生另一個(gè)循環(huán),且這個(gè)循環(huán)區(qū)在剛才那個(gè)無(wú)法消去的行之上(循環(huán)區(qū)不可能包含一個(gè)不能消除的行,因?yàn)檎缜懊嫠f(shuō),一個(gè)實(shí)際循環(huán)區(qū)的所有行最終都是會(huì)被消掉的,這樣才可能循環(huán))。這個(gè)循環(huán)區(qū)的最左邊那個(gè)通道將會(huì)產(chǎn)生一個(gè)“口■”結(jié)構(gòu),是“S”所不能消去的。于是,游戲機(jī)又給出一大堆的“S”,最終使得兩種無(wú)法消去的行交替出現(xiàn),直至Game Over。
有兩點(diǎn)值得注意。一、雖然我們這里假設(shè)游戲機(jī)是有主觀能動(dòng)性的,但事實(shí)上呢,即使方塊是隨機(jī)出的,如果你足夠倒霉的話,這個(gè)特殊的方塊序列可能恰好就讓你一個(gè)不錯(cuò)地碰上了;雖然這種怪事的發(fā)生概率極低,但理論上說(shuō)仍然是可能的,因此俄羅斯方塊終究不是玩不死的,總有一個(gè)時(shí)候會(huì)Game Over。二、這個(gè)結(jié)論可以直接擴(kuò)展到場(chǎng)地為任意寬度的俄羅斯方塊游戲。當(dāng)場(chǎng)地寬為偶數(shù)時(shí),上述證明同樣有效;當(dāng)場(chǎng)地寬為奇數(shù)時(shí),無(wú)窮多個(gè)方形方塊就可以直接干掉玩家。
-
傳奇歲月
-
原始傳奇
-
斗羅大陸(我唐三認(rèn)可0.1折)
-
妖神記之巔峰對(duì)決
-
坦克兄弟連(0.1折瘋狂千抽)
-
深淵契約
-
貓狩紀(jì)0.1折
-
同城麻將
玩家點(diǎn)評(píng) (0人參與,0條評(píng)論)
熱門評(píng)論
全部評(píng)論