PyQt挖地雷遊戲學習筆記(1),pyqt學習筆記

來源:互聯網
上載者:User

PyQt挖地雷遊戲學習筆記(1),pyqt學習筆記

想學會PyQt。按習慣做法,從分析學習編程執行個體著手。

從網上找了個“挖地雷”的源碼,大卸八塊,仔細解剖,力圖學到些東西。

原程式中有bug,如:“棋盤”沒有下邊界線;挖出全部地雷後,程式沒反應,不認定獲勝。

我已將其鏟掉,可以正常運行了。

程式源碼可在此下載

所做修改,都在game_scene.py。共有2處:

一是在函數checkWin()中,原文是:

if ((self.mine_map == self.flag_map).all() and            (self.mine_map != self.open_map).all()):            self.win()

現改為:
if (self.mine_map != self.open_map).all():            self.win()

修改後,程式可以自動正確判定勝利了。

二是在函數paintEvent()中,原文是:

for i in range(y+1):            p.drawLine(mx, my+i*sy, mx+x*sx, my+i*sy)

在其後增加一句:
p.drawLine(mx, my+i*sy-1, mx+x*sx, my+i*sy-1)

現已可畫出棋盤底邊。


挖地雷遊戲設計

我曾經寫過一個掃雷,不過應為不會使用滑鼠硬體參數,我的掃雷是每步都用鍵盤輸入想點擊的座標實現的
給你講講過程吧
1.首先是初始化:建立一個21*21的數組,最外邊加一層牆,填入-1,然後隨機放10個地雷
2.然後是點擊部分,重點!
分類(1),如果是點到地雷了->GAME OVER...
分類(2),點到數字了(旁邊有雷),就是判斷四周的格子有幾個雷,顯示
分類(3),四周都沒有雷,這裡用動態規劃,一直延伸到周圍全是數字包圍(包括牆上的-1)這是痛點
3.勝利判斷就簡單了,一直記錄剩餘的地雷就行了
 
挖地雷有什進階技巧

ˊ侽メ紸桷(361843551)為您解答:1:開始的時候從邊角開始,一半是運氣,然後看它旁邊的數字提示,表示的是它周圍的地雷數目,在拐角的地方尋找他們的焦點,確認是否有地雷,若有的話,用小旗標記,然後再次對應,看是否有交集的地點,慢慢的向外延伸,尤其要注意的是當周圍有數字1,而在你已經開出的地方有串連的話,則周圍全部為安全區域,你可以放心的開出它周圍的地方,但是當你碰到4或者是5的時候,你要小心的像剝皮一樣慢慢思考,切記不可急噪,它考驗的就是你的心細程度,最後完成的時候它會送你一個漂亮的笑臉,很高心的!!2:通過滑鼠操作來把地區中的雷清除完其中在按下時 如果顯示是數字 則表示以這個數字為中心周圍的9個方快中有多少雷如果是雷 則顯示出所有的地雷 掃雷結束當你確定這個方快是雷時 請按滑鼠右鍵 在這個方快上做出小紅旗標誌當你在憂鬱時 請按滑鼠右鍵2次 在方快上做出問號標誌 以幫你確認這個遊戲是考驗人的推理以及數學能力有個竅門的,可以滑鼠兩個鍵一起按.比如你點出一個1,周圍你也插了一個小旗,那就可以在1上面,用兩個鍵一起按,周圍的就都開啟了. 3:初級:全用左鍵。中級:盡量用左鍵(即少用右鍵點雷)。進階:左鍵,右鍵,左右鍵同按靈活使用。要有一個好滑鼠,多加練習。腦子一定要轉的快,手一定要跟的上腦的速度,達到開一片地區馬上就能判斷出雷的位置的水平,即“條件反射”。對於“121”等有技巧的地區,平時多留意,有時停一下想想也好(為了以後掃的更快),開局時和不靠猜的時候要從這裡下手。實在是玩到無從下手時就要靠猜了,以出錯最小機率的地方猜。如“1”的附近用左鍵猜,“6,7”的附近用右鍵猜,組合猜等等。總之,掃雷是一個看似簡單實則蘊涵很多道理的遊戲,大家一定要多思考,多玩。本人成績是初級2秒,中級26秒,進階89秒。想提高成績,實力很重要,但關鍵還是運氣。初級完全是運氣!大家只要多玩,點一兩下都可能完成(即 1秒)。中級還是運氣,有好多雷聚在一起了(接近有二十個雷沒有用右鍵點出來)。進階……也是運氣吧,給的位置都是剛剛好。想提高成績,實力很重要,但關鍵還是運氣。另外,掃雷有一個國外的高手的錄影,初級1秒,中級10秒,進階44秒,自愧弗如。不過他的進階手動的實在是太快了,讓本人不自然的聯想到了諸如“變速齒輪”之類的東東。本來想寫的更詳細些,主要想寫一些固定組合和算機率猜的技巧,或首先你要用左鍵在畫面裡開一片空闊地出來,然後在邊緣位置滑鼠左右鍵一起按,如果你按的那個方格的周圍8個格子裡只有一個雷,那個雷自動拔掉,很輕鬆,然後就是多練習。想調時間很容易,進入遊戲,隨便點個格子,然後立刻點開始欄邊上的“顯示案頭”的表徵圖,然後遊戲最小化,點開以後,時間定格在1秒 掃雷的作弊方法:(windows xp 適用) 1.開啟掃雷,鍵入xyzzy 斷行符號 Shift,螢幕左上方就會有一個像素的小點,當你的滑鼠在小格子上晃的時候,如果那個格子有雷就會有一個亮點:), 記得你得至少先點開一個格子才能看到。(為什麼呢?因為點了一個格子之後,程式才決定所有雷的分布。為啥這麼做呢,因為它希望使用者點的第一個格子永遠都不是雷) 2.把計時器停掉(兩種方法): 1)玩的時候,用window鍵+D最小化所有視窗,然後立即滑鼠點擊恢複掃雷視窗,再任意點一個不會爆炸的格子,這時候再看看? 計時器已經停止了。 2)滑鼠點在笑臉上,按著不動,這時候計時器就停了。你可以接著把滑鼠離開笑臉然後鬆開左鍵,遊戲就不會重新開始,當然計時器還會接著走。你問這有什麼用?呵呵,你可以按著它來停住計時器,然後仔細思考, 呵呵,至......餘下全文>>
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.