天天看點

Python遊戲開發,pygame子產品,Python實作24點小遊戲

本期我們将制作一個24點小遊戲,讓我們愉快地開始吧~

Python遊戲開發,pygame子產品,Python實作24點小遊戲

Python版本: 3.6.4

相關子產品:

pygame子產品;

以及一些Python自帶的子產品。

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

原理簡介

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

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

逐漸實作:

Step1****:制作24點生成器

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

Python遊戲開發,pygame子產品,Python實作24點小遊戲

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

Step2****:定義遊戲精靈類因為玩家需要通過滑鼠點選來操作卡片,這時候就涉及到一些碰撞檢測。是以先定義一些必要的遊戲精靈類。

①卡片類

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

②按鈕類

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

Step3****:實作遊戲主循環先構思一下怎麼設計遊戲主界面,個人的簡單設計草圖如下(不是特别走心的設計草圖T_T):

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

Python遊戲開發,pygame子產品,Python實作24點小遊戲

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

Python遊戲開發,pygame子產品,Python實作24點小遊戲

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

Python遊戲開發,pygame子產品,Python實作24點小遊戲

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

Python遊戲開發,pygame子產品,Python實作24點小遊戲

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

Python遊戲開發,pygame子產品,Python實作24點小遊戲

文章到這裡就結束了,感謝你的觀看,Python24個小遊戲系列,下篇文章分享乒乓球小遊戲

繼續閱讀