資源簡介
python大作業(yè).rar

代碼片段和文件信息
#?-*-?coding:?cp936?-*-
import?pygamesys
from?pygame.locals?import?*
import?random
boardWidthboardHeight=(88)
gemNum=64
gemImageNum=5
gemSize=32
startX=44
startY=44
endX=556
endY=556
LEFT=1
RIGHT=2
UP=3
DOWN=4
square=[‘red.jpg‘‘green.jpg‘‘blue.jpg‘‘orange.jpg‘‘yellow.jpg‘]
gemImages=[]
class?Game:
????def?__init__(self):
????????#初始化?pygame,screen?,timeclock
????????pygame.init()
????????self.bg=pygame.image.load(‘background.jpg‘)
????????for?i?in?square:
????????????gem=pygame.image.load(i)
????????????gemImages.append(gem)
????????self.trans=pygame.image.load(‘trans.png‘)
????????#trans是一個64x64的空白方塊
????????
????????self.screen=pygame.display.set_mode((800600))
????????self.clock=pygame.time.Clock()????
????????pygame.display.set_caption(‘Voice?China‘)
????????
????????#初始化整個版面的布局,列表解析,嵌套字典,每個小字典cube對應(yīng)一個小方塊的三個屬性(key)
????????self.mainBoard=[[{}?for?i?in?range(boardWidth)]for?j?in?range(boardHeight)]
????????for?i?in?range(boardWidth):
????????????for?j?in?range(boardHeight):
???????????????cube={}?
???????????????cube[‘imageColor‘]=gemImages[random.randint(04)]
???????????????cube[‘x‘]=startX+j*64
???????????????cube[‘y‘]=startY+i*64
???????????????self.mainBoard[i][j]=cube
????????matchedGemInit=self.FindMatchedGems()#to?be?continued(這是開始編寫的時候留下的注釋)
????????while?matchedGemInit!=[]:
????????????for?gem?in?matchedGemInit:
????????????????#重置這個小塊兒,然后把它從matchedGemInit中刪去,讓matchweGemInit繼續(xù)工作
????????????????self.mainBoard[gem[0]][gem[1]][‘imageColor‘]=gemImages[random.randint(04)]
????????????????matchedGemInit.remove(gem)
????????????matchedGemInit+=self.FindMatchedGems()
????#檢驗是否在board內(nèi)點擊,鼠標(biāo)點擊事件是比較麻煩的,要全面考慮每次點擊的位置,de各種bug...??????????????????????????
????def?CheckIfInBoard(selfpos):
????????if(pos[0]>startX?and?pos[0]startY?and?pos[1] ????????????x=int((pos[0]-startX)/64)
????????????y=int((pos[1]-startY)/64)
????????????return?(yx)
????????????#開始沒注意這個細(xì)節(jié),整個程序就癱瘓了...
????????
????????return?None
????#下落過程和最上方的更新,這個實現(xiàn)比較繁瑣,不過好歹是想出來了
????def?DropGem(self):?????????????
????????Distance=[]
????????count=0?????
????????for?j?in?range(8):
????????????for?i?in?range(8):
????????????????if?self.mainBoard[i][j][‘imageColor‘]==self.trans:
????????????????????count+=1
????????????Distance.append(count)
????????????count=0?
?????????????
????????#在這里加一個得分的聲音get_point
????????get_point.play()
????????#對每一列的每行上的進行檢查,逐一下移到line==0為止,在第一行隨機補上
????????for?col?in?range(8):
????????????while(Distance[col]!=0):
????????????????for?line?in?range(8):
????????????????????if(self.mainBoard[line][col][‘imageColor‘]==self.trans):
????????????????????????if(line==0):
????????????????????????????self.mainBoard[0][col][‘imageColor‘]=gemImages[random.randint(04)]
????????????????????????????Distance[col]=Distance[col]-1
????????????????????????else:
????????????????????????????self.mainBoard[line][col][‘imageColor‘]=self.mainBoard[line-1][c
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????137884??2014-12-20?11:46??python大作業(yè)\background.jpg
?????文件?????349902??2014-12-16?15:34??python大作業(yè)\bg_music.mp3
?????文件???????3272??2014-12-20?12:00??python大作業(yè)\blue.jpg
?????文件???????9114??2012-07-20?03:49??python大作業(yè)\get_point.ogg
?????文件??????17258??2014-12-20?12:03??python大作業(yè)\green.jpg
?????文件???????3321??2014-12-20?12:04??python大作業(yè)\orange.jpg
?????文件???????3929??2014-12-20?12:01??python大作業(yè)\red.jpg
?????文件???????2877??2012-02-20?18:32??python大作業(yè)\trans.png
?????文件??????50820??2012-07-19?20:36??python大作業(yè)\win.ogg
?????文件???????3613??2014-12-20?11:58??python大作業(yè)\yellow.jpg
?????文件??????13957??2014-12-22?22:38??python大作業(yè)\對對碰@中國好聲音.py
?????目錄??????????0??2014-12-27?23:30??python大作業(yè)
-----------?---------??----------?-----??----
???????????????595947????????????????????12
評論
共有 條評論