本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個(gè)人專欄
下載W3Cschool手機(jī)App,0基礎(chǔ)隨時(shí)隨地學(xué)編程>>戳此了解
導(dǎo)語
本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個(gè)人專欄
下載W3Cschool手機(jī)App,0基礎(chǔ)隨時(shí)隨地學(xué)編程>>戳此了解
本期我們將制作一個(gè)拼圖小游戲。
好吧也許有些幼稚。
不過無論如何,讓我們愉快地開始吧~~~
相關(guān)文件
百度網(wǎng)盤下載鏈接: https://pan.baidu.com/s/1q9VPkOYvI12LjqfQVRCF1Q
密碼: 7wfg
開發(fā)工具
Python版本:3.6.4
相關(guān)模塊:
pygame模塊;
以及一些Python自帶的模塊
環(huán)境搭建
安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。
原理介紹
游戲簡(jiǎn)介:
將圖像分為m×n個(gè)矩形塊,并將圖像右下角的矩形塊替換為空白塊后,將這些矩形塊隨機(jī)擺放成原圖像的形狀。游戲目標(biāo)為通過移動(dòng)非空白塊將隨機(jī)擺放獲得的圖像恢復(fù)成原圖像的模樣,且規(guī)定移動(dòng)操作僅存在于非空白塊移動(dòng)到空白塊。
例如下圖所示:
逐步實(shí)現(xiàn):
Step1:游戲初始界面
既然是游戲,總得有個(gè)初始界面吧?
OK,我們先寫一個(gè)游戲初始界面:
效果是這樣子的:
根據(jù)玩家自身水平,可以選擇不同難度的拼圖游戲。
Step2:定義移動(dòng)操作
定義移動(dòng)操作的目的是為了移動(dòng)拼圖(好像是廢話T_T),具體實(shí)現(xiàn)起來十分簡(jiǎn)單:
Step3:游戲主界面
OK,有了前面的鋪墊,我們可以開始實(shí)現(xiàn)我們的游戲主界面了。
首先,我們需要打亂拼圖,但是隨機(jī)打亂很可能導(dǎo)致拼圖無解,因此我們通過隨機(jī)移動(dòng)拼圖來實(shí)現(xiàn)打亂拼圖的效果,這也是我們先定義拼圖的移動(dòng)操作的主要原因:
游戲主界面初始化:
最后實(shí)現(xiàn)主界面的顯示刷新以及事件響應(yīng)等功能:
Step4:游戲結(jié)束界面
當(dāng)玩家完成拼圖后,需要顯示游戲結(jié)束界面,和游戲初始界面類似,實(shí)現(xiàn)起來都比較簡(jiǎn)單:
OK,大功告成!??!
游戲效果
在cmd窗口運(yùn)行Game3.py文件即可。
效果如下:
更多
代碼截止2018-06-26測(cè)試無誤。
同樣,有興趣的小伙伴可以在此基礎(chǔ)上進(jìn)行優(yōu)化,比如增加計(jì)時(shí)功能,積分功能等等。