【淺談】一筆畫小游戲到底該怎么玩?通俗理解歐拉道路的繪制


  • 寫在前面:因為能力和記憶有限,為方便以后查閱,特寫看上去 “不太正經” 的隨筆。隨筆有 “三” 隨:隨便寫寫;隨時看看;隨意理解。

 

還是閑話的繼續,正值春運期間,騰訊QQ上也推出了相關紅包雨活動,其中有個叫做星運連連的游戲,就和一筆畫沒什么區別,就是下面這個:

       

一時興起隨便玩玩,結果一發不可收拾,也就成了寫這篇水(sui)筆的主要原因。這里先提一嘴今天的主題——歐拉道路

 

1.從“一筆畫”的規則說起:

    一筆畫要求玩家任選一個點作為起點,每條邊只能經過一次(一筆的思想體現在這),但每個點可以不計次數地重復經過。

   這種走法畫出來的路線就是所謂的歐拉道路,即在圖的數據結構中,通過每條邊一次且僅一次的道路。

   這里舉一個簡單且常見的例子:

  一筆畫五角星★,我們把畫每一條線條的過程理解為通過這條道路,不難理解歐拉道路的繪制過程。 

  還是賦一張圖吧!(序號為划線順序,方向看箭頭)

        

 

 

2.關於一筆畫游戲的通解:

1)這里先介紹頂點度數的概念,了解的可自行跳過。

一筆畫游戲里的圖可以都看作無向圖 (即所有邊沒有通過方向的限定,就是邊不帶箭頭,上圖為了演示畫圖過程才加上的),每個頂點的度數等於與該頂點有關的邊的條數,就是數某個頂點周圍延伸出了幾條邊,該點的度數就為幾。

上圖 五角星★ 的5個頂點度數都為2,因為每個頂點可以通過 2 條不同的邊與除自身外的其他頂點相連。

由於度數英文是degree,頂點 v 的度數可用符號 deg(v) 表示。記圖中1號頂點為 v1,則 deg(v1)=2 。

 

2)這里有一個快速通關的規則:優先找到奇數度數的點並從中隨意選一個作為起點,全為偶數度隨意選擇起點即可。

因此我們只需抱着找奇度點的想法就行,為了熟悉一下頂點度數判斷,這里我們多看幾個例子(來自星運連連小游戲),奇度點相應度數已在圖上標出。

                

上述5個例子從任意一個奇度點開始都可以畫出歐拉道路(當然畫法不唯一)。

 

3)勉強來一個實操例子吧,不想看可以直接跳至可能情況說明:

起始點度為3

                

通關后停留時間太短沒來得及最后一張。。。

 

4)可能存在的情況(以  第四個例子——關卡36  進行說明):

如果按照紅色編號順序連接:

             

可以發現此時已經 game over了,不難想到第6步應該首先連接左下方或右下方的點。

因為至第5步結束,我們去除走過的邊,若我們繼續走6號邊至最上方頂點,去除該邊,此時找不到通往下方其他頂點的道路了,這時可稱該邊為 (起連接兩岸的作用,去掉后兩岸再無聯系,定義中用圖不再連通表述,這里為了方便理解)。

解決的方法是最后再走橋,僅此而已。

 

 

  • 小插曲 

            一筆畫中所有圖奇數度頂點個數≤2,這樣才能保證歐拉道路的存在!不信自己去試試,不會且不做證明。

            奇數度頂點數為2的,都是以奇度點開始奇度點收尾。

            最后一本正經地胡說八道:有進有出為偶度;單進單出只能首尾,故首尾為奇度,共兩點

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM