1984年的時候,還沒有多少人認識阿列克謝,帕基特諾夫.當時,29歲的帕基特諾夫還只是蘇聯(lián)科學院計算機中心的一位普通工程師,他熱衷于開發(fā)電腦游戲,不過他開發(fā)的游戲賣得并不好,那年夏天,他突然想到了一個新點子——讓不同形狀的積木落進一個長方體容器里,在容器底部堆疊起來.在兩位同伴的協(xié)助下,他很快編寫了這個游戲程序.雖然他預感到這個游戲可能會火,但實際情況還是令他瞠目結舌,這個游戲在莫斯科迅速流行起來,并很快風靡全球.在此后的25年里,這個游戲被移植到了幾乎所有的電腦系統(tǒng)和游戲平臺上.這個游戲還產生了不計其數的變種,衍生出各式各樣的玩法,可以說是解謎游戲大家庭里最重要的成員之一.它就是無人不知無人不曉的經典游戲——俄羅斯方塊.
俄羅斯方塊的游戲規(guī)則非常簡單:屏幕上方隨機出現一塊由小正方形拼成的積木,并不斷下落;玩家需要對積木進行旋轉,并左右調整積木的位置,讓它在一個合適的位置落地.這塊積木落地后,屏幕的上方又會出現下一塊積木……如果屏幕上的某一行被積木填滿,這一行就會被消除,什么時候積木堆到了屏幕的頂端,游戲就結束,玩家就輸掉了.
這是一種前所未有的游戲類型,規(guī)則簡潔而又讓人著迷,獲得巨大的成功也是理所當然的事情.游戲規(guī)則的簡潔之處,還與積木的形狀有關,俄羅斯方塊里的每一種積木都恰好由4個小正方形拼成,因此,俄羅斯方塊里的積木只有7種(如圖1).
大家可能會覺得奇怪:第4種積木和第5種積木難道不是一種嗎?確實不是,在游戲屏幕里,積木是不允許左右翻轉或者上下翻轉的,每次旋轉只能順時針或逆時針旋轉90°,第4種積木和第5種積木雖然是鏡像關系,但其中一個不管旋轉幾次,都無法變成另外一個.所以,這其實是兩種不同的積木.類似地,最后的兩種積木,它們也算作不同的積木,不過,前面三種積木為什么沒有鏡像版本呢?原因很簡單:前三種積木本身就是軸對稱的,所以它們不“畏懼”旋轉.
雖然其中四種積木本身并不是軸對稱圖形,但利用它們很容易拼出軸對稱圖形,以第4種積木為例,如果我們手中有很多塊這種形狀的積木,就可以拼出圖2中的這些軸對稱圖形.
這并不令人感到驚訝,雖然這種形狀的積木并不對稱,但偶數個這樣的積木可以對稱地擺放,出現對稱性也是理所當然的事情,
能不能用奇數個這樣的積木拼出一個軸對稱圖形呢?答案仍然是肯定的,我們可以分別用3塊和5塊積木拼成下面的圖形(圖3和圖4).
你或許注意到了,這種用奇數個L形積木搭出的軸對稱圖形,對稱軸都是沿著小正方形對角線方向的,是45°傾斜的直線,能否用奇數個這樣的積木拼出一個左右對稱或上下對稱的圖形呢?可以證明,這是永遠辦不到的.
假設我們要把若干個L形積木放進正方形網格里,組成一個左右對稱的圖形,它的對稱軸位置有兩種情況:穿過其中一列正方形的中心,以及正好和某根豎直的網格線重合.
如果是前一種情況,那就把各列正方形交替染成黑白二色,使得這條對稱軸穿過的正好是一列白色正方形(如圖5).由于整個圖形關于對稱軸左右對稱,因此左半部分覆蓋了多少個黑色小正方形,右半部分也會覆蓋同樣多個黑色小正方形.這說明,整個圖形覆蓋的黑色小正方形的個數為偶數.
如果是后一種情況呢?同樣把各列正方形交替染成黑白二色(如圖6).由于整個圖形關于對稱軸左右對稱,因此左半部分每覆蓋一個黑色小正方形,右半部分就會對應地覆蓋一個白色小正方形;類似地,左半部分每覆蓋一個白色小正方形,右半部分也就會對應地覆蓋一個黑色小正方形.這說明,整個圖形覆蓋的黑白小正方形的個數相同,由于整個圖形是由若干個L形積木組成的,每個積木包含4個小正方形,因此整個圖形覆蓋的小正方形總數是4的倍數.黑色小正方形占其中的一半,因而有偶數個.
然而,這兩個網格里的任何一個L形積木,總會覆蓋奇數個黑色小正方形,因此,要想讓整個圖形覆蓋偶數個黑色小正方形,L形積木也得有偶數個,這就證明了,奇數個L形積木無法形成一個左右對稱的圖形.根據同樣的道理,奇數個L形積木也無法形成一個上下對稱的圖形.