0 項(xiàng)目簡(jiǎn)介
?? Hi,各位同學(xué)好呀,這里是L學(xué)長(zhǎng)!
??今天向大家分享一個(gè)今年(2022)最新完成的畢業(yè)設(shè)計(jì)項(xiàng)目作品
python小游戲畢設(shè) 消消樂(lè)小游戲設(shè)計(jì)與實(shí)現(xiàn) (源碼)
?? 學(xué)長(zhǎng)根據(jù)實(shí)現(xiàn)的難度和等級(jí)對(duì)項(xiàng)目進(jìn)行評(píng)分(最低0分,滿分5分)
-
難度系數(shù):3分
-
工作量:3分
-
創(chuàng)新點(diǎn):4分
-
項(xiàng)目獲?。?/strong>https://gitee.com/sinonfin/system-sharing文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-815266.html
1 游戲介紹
利用python制作的簡(jiǎn)易消消樂(lè)小游戲。
游戲規(guī)則:
玩家通過(guò)鼠標(biāo)交換相鄰的拼圖,若交換后水平/豎直方向存在連續(xù)三個(gè)相同的拼圖,則這些拼圖消失,玩家得分,同時(shí)生成新的拼圖以補(bǔ)充消失的部分,否則,交換失敗,玩家不得分。
玩家需要在規(guī)定時(shí)間內(nèi)獲取盡可能高的得分。
2 實(shí)現(xiàn)效果
3 開(kāi)發(fā)工具
3.1 環(huán)境配置
-
Python版本:3.6.4
-
相關(guān)模塊:
-
pygame模塊;
-
以及一些Python自帶的模塊。
3.2 Pygame介紹
簡(jiǎn)介
Pygame是一系列專門為編寫(xiě)電子游戲而設(shè)計(jì)的Python模塊(modules)。Pygame在已經(jīng)非常優(yōu)秀的SDL庫(kù)的基礎(chǔ)上增加了許多功能。這讓你能夠用Python語(yǔ)言編寫(xiě)出豐富多彩的游戲程序。
Pygame可移植性高,幾乎能在任何平臺(tái)和操作系統(tǒng)上運(yùn)行。
Pygame已經(jīng)被下載過(guò)數(shù)百萬(wàn)次。
Pygame免費(fèi)開(kāi)源。它在LGPL許可證(Lesser General Public License,GNU寬通用公共許可證)下發(fā)行。使用Pygame,你可以創(chuàng)造出免費(fèi)開(kāi)源,可共享,或者商業(yè)化的游戲。詳情請(qǐng)見(jiàn)LGPL許可證。
優(yōu)點(diǎn)
-
能夠輕松使用多核CPU(multi core CPUs) :如今雙核CPU很常用,8核CPU在桌面系統(tǒng)中也很便宜,而利用好多核系統(tǒng),能讓你在你的游戲中實(shí)現(xiàn)更多東西。特定的pygame函數(shù)能夠釋放令人生畏的python GIL(全局解釋器鎖),這幾乎是你用C語(yǔ)言才能做的事。
-
核心函數(shù)用最優(yōu)化的C語(yǔ)言或匯編語(yǔ)言編寫(xiě):C語(yǔ)言代碼通常比Python代碼運(yùn)行速度快10-20倍。而匯編語(yǔ)言編寫(xiě)的代碼(assembly code)比Python甚至快到100多倍。
-
安裝便捷:一般僅需包管理程序或二進(jìn)制系統(tǒng)程序便能安裝。
-
真正地可移植:支持Linux (主要發(fā)行版), Windows (95, 98, ME, 2000, XP, Vista, 64-bit Windows,), Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX等操作系統(tǒng).也能支持AmigaOS, Dreamcast, Atari, AIX, OSF/Tru64, RISC OS, SymbianOS and OS/2,但是還沒(méi)有受到官方認(rèn)可。你也可以在手持設(shè)備,游戲控制臺(tái), One Laptop Per Child (OLPC) computer項(xiàng)目的電腦等設(shè)備中使用pygame.
-
用法簡(jiǎn)單:無(wú)論是小孩子還是大人都能學(xué)會(huì)用pygame來(lái)制作射擊類游戲。
-
很多Pygame游戲已發(fā)行:其中包括很多游戲大賽入圍作品、非常受歡迎的開(kāi)源可分享的游戲。
-
由你來(lái)控制主循環(huán):由你來(lái)調(diào)用pygame的函數(shù),pygame的函數(shù)并不需要調(diào)用你的函數(shù)。當(dāng)你同時(shí)還在使用其他庫(kù)來(lái)編寫(xiě)各種各種的程序時(shí),這能夠?yàn)槟闾峁O大的掌控權(quán)。
-
不需要GUI就能使用所有函數(shù):僅在命令行中,你就可以使用pygame的某些函數(shù)來(lái)處理圖片,獲取游戲桿輸入,播放音樂(lè)……
-
對(duì)bug反應(yīng)迅速:很多bug在被上報(bào)的1小時(shí)內(nèi)就能被我們修復(fù)。雖然有時(shí)候我們確實(shí)會(huì)卡在某一個(gè)bug上很久,但大多數(shù)時(shí)候我們都是很不錯(cuò)的bug修復(fù)者。如今bug的上報(bào)已經(jīng)很少了,因?yàn)樵S多bug早已被我們修復(fù)。
-
代碼量少:pygame并沒(méi)有數(shù)以萬(wàn)計(jì)的也許你永遠(yuǎn)用不到的冗雜代碼。pygame的核心代碼一直保持著簡(jiǎn)潔特點(diǎn),其他附加物諸如GUI庫(kù)等,都是在核心代碼之外單獨(dú)設(shè)計(jì)研發(fā)的。
-
模塊化:你可以單獨(dú)使用pygame的某個(gè)模塊。想要換著使用一個(gè)別的聲音處理庫(kù)?沒(méi)問(wèn)題。pygame的很多核心模塊支持獨(dú)立初始化與使用。
最小開(kāi)發(fā)框架
import pygame,sys #sys是python的標(biāo)準(zhǔn)庫(kù),提供Python運(yùn)行時(shí)環(huán)境變量的操控
pygame.init() #內(nèi)部各功能模塊進(jìn)行初始化創(chuàng)建及變量設(shè)置,默認(rèn)調(diào)用
size = width,height = 800,600 #設(shè)置游戲窗口大小,分別是寬度和高度
screen = pygame.display.set_mode(size) #初始化顯示窗口
pygame.display.set_caption("小游戲程序") #設(shè)置顯示窗口的標(biāo)題內(nèi)容,是一個(gè)字符串類型
while True: #無(wú)限循環(huán),直到Python運(yùn)行時(shí)退出結(jié)束
for event in pygame.event.get(): #從Pygame的事件隊(duì)列中取出事件,并從隊(duì)列中刪除該事件
if event.type == pygame.QUIT: #獲得事件類型,并逐類響應(yīng)
sys.exit() #用于退出結(jié)束游戲并退出
pygame.display.update() #對(duì)顯示窗口進(jìn)行更新,默認(rèn)窗口全部重繪
代碼執(zhí)行流程
4 具體實(shí)現(xiàn)
Step1:初始化
游戲初始化,并加載必要的游戲素材:
Step2:定義游戲精靈類
游戲中需要用到鼠標(biāo)與拼圖塊之間的碰撞檢測(cè),從而操作拼圖塊移動(dòng),因此我們定義一個(gè)拼圖塊游戲精靈類以方便實(shí)現(xiàn)這些功能:
Step3:實(shí)現(xiàn)游戲主循環(huán)
邏輯其實(shí)很簡(jiǎn)單,就是不斷檢測(cè)是否有鼠標(biāo)點(diǎn)擊事件發(fā)生,如果有,則判斷鼠標(biāo)點(diǎn)擊時(shí)的位置是否在某拼圖塊的位置區(qū)域內(nèi),若在,則選中該拼圖塊,否則不選中。
當(dāng)有第二塊拼圖塊被選中時(shí),則判斷兩個(gè)拼圖塊是否滿足拼圖交換的條件,若滿足,則交換拼圖塊,并獲得獎(jiǎng)勵(lì),否則不交換并取消選這兩個(gè)拼圖塊的選中狀態(tài)。
源代碼如下圖所示:
Step4:游戲結(jié)束界面
游戲倒計(jì)時(shí)結(jié)束后,進(jìn)入游戲結(jié)束界面,界面顯示用戶當(dāng)前得分。同時(shí),若用戶鍵入R鍵則重新開(kāi)始游戲,鍵入ESC鍵則退出游戲。
源代碼實(shí)現(xiàn)如下:
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-815266.html
5 最后
項(xiàng)目獲?。?/strong>https://gitee.com/sinonfin/system-sharing
到了這里,關(guān)于python項(xiàng)目分享 消消樂(lè)小游戲設(shè)計(jì)與實(shí)現(xiàn) (源碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!