Python代碼制作24點小游戲


相關文件

關注微信公眾號“Python學習指南”,公眾號內回復‘24點’獲取。

音頻素材源于網絡,侵歉刪。

Python版本:3.6.4

相關模塊:

pygame模塊;

以及一些Python自帶的模塊。

安裝Python并添加到環境變量,pip安裝需要的相關模塊即可。

游戲規則(改編自維基百科):

從1~10這十個數字中隨機抽取4個數字(可重復),對這四個數運用加、減、乘、除和括號進行運算得出24。每個數字都必須使用一次,但不能重復使用。詳見:

https://zh.wikipedia.org/wiki/24%E7%82%B9

逐步實現:

Step1:制作24點生成器

既然是24點小游戲,當然要先定義一個24點游戲生成器啦。主要思路就是隨機生成4個有解的數字,且范圍在1~10之間,代碼實現如下:

Python代碼制作24點小游戲的圖1      

在驗證4個數字是否有解并求出所有解部分,我直接暴力枚舉然后去重了,感興趣的同學可以自己再優化一下求解算法(有數字重復的時候)。我的代碼如下圖所示,其實就是遞歸枚舉所有排序然后一一驗證是否有解:

Python代碼制作24點小游戲的圖2      
Step2       :定義游戲精靈類      
因為玩家需要通過鼠標點擊來操作卡片,這時候就涉及到一些碰撞檢測。       所以先定義一些必要的游戲精靈類。    
①卡片類    

卡片類的定義也很簡單,在屏幕上根據被賦予的屬性值來顯示自身即可。當然之后也需要根據用戶的操作來改變這些屬性值(內容、顏色、字體等)并在屏幕上根據屬性的改變而改變顯示狀態即可。具體而言代碼實現如下:

Python代碼制作24點小游戲的圖3      
②按鈕類      

按鈕類和卡片類類似,唯一的不同點就是在用戶點擊按鈕時需要根據該按鈕的功能來響應用戶的本次點擊操作(即實現一次該功能)。因此只需要繼承卡片類,然后再定義一個響應用戶點擊按鈕事件的回調函數即可。代碼實現如下:

Python代碼制作24點小游戲的圖4      
Step3       :實現游戲主循環      
先構思一下怎么設計游戲主界面,個人的簡單設計草圖如下(不是特別走心的設計草圖T_T):    
Python代碼制作24點小游戲的圖5      

OK,開搞。先初始化、加載必要的素材和定義必要的變量,代碼實現如下:

Python代碼制作24點小游戲的圖6      

游戲主循環主要分三個部分,首先是按鍵檢測:

Python代碼制作24點小游戲的圖7      

根據檢測結果更新卡片狀態和一些變量:

Python代碼制作24點小游戲的圖8      

當有兩個數字和一個運算符被點擊時,則執行被點擊數字1{+/-/×/÷}被點擊數字2操作(數字1、2根據點擊順序確定),并進一步更新卡片屬性和一些必要的變量:

Python代碼制作24點小游戲的圖9      

最后根據各個卡片的屬性在屏幕上顯示各個卡片,若游戲勝利/游戲失敗,則同時顯示游戲勝利/游戲失敗提示框:

Python代碼制作24點小游戲的圖10      

好的,我介紹完了。

All Done!完整源代碼詳見相關文件。

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

6