Python 俄罗斯方块游戏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【Python】用Python实现一个俄罗斯方块游戏
俄罗斯方块游戏,使用Python实现,总共有350+行代码,实现了俄罗斯方块游戏的基本功能,同时会记录所花费时间,消去的总行数,所得的总分,还包括一个排行榜,可以查看最高记录。
排行榜中包含一系列的统计功能,如单位时间消去的行数,单位时间得分等。
附源码:
from Tkinter import*
from tkMessageBox import*
import random
import time
#俄罗斯方块界面的高度
HEIGHT=18
#俄罗斯方块界面的宽度
WIDTH=10
ACTIVE=1
PASSIVE=0
TRUE=1
FALSE=0
root=Tk();root.title('Russia')
class App(Frame):
def__init__(self,master):
Frame.__init__(self)
master.bind('
master.bind('
master.bind('
master.bind('
#master.bind('
master.bind('
master.bind('
master.bind('
self.backg="#%02x%02x%02x"%(120,150,30)
self.frontg="#%02x%02x%02x"%(40,120,150)
self.nextg="#%02x%02x%02x"%(150,100,100)
self.flashg="#%02x%02x%02x"%(210,130,100)
self.LineDisplay=Label(master,text='Lines:',bg='black',fg='red')
self.Line=Label(master,text='0',bg='black',fg='red')
self.ScoreDisplay=Label(master,text='Score:',bg='black',fg='red')
self.Score=Label(master,text='0',bg='black',fg='red')
#Display time
self.SpendTimeDisplay=Label(master,text='Time:',bg='black',fg='red')
self.SpendTime=Label(master,text='0.0',bg='black',fg='red')
self.LineDisplay.grid(row=HEIGHT-2,column=WIDTH,columnspan=2)
self.Line.grid(row=HEIGHT-2,column=WIDTH+2,columnspan=3)
self.ScoreDisplay.grid(row=HEIGHT-1,column=WIDTH,columnspan=2)
self.Score.grid(row=HEIGHT-1,column=WIDTH+2,columnspan=3)
#Display time
self.SpendTimeDisplay.grid(row=HEIGHT-4,column=WIDTH,columnspan=2) self.SpendTime.grid(row=HEIGHT-4,column=WIDTH+2,columnspan=3)
self.TotalTime=0.0
self.TotalLine=0;self.TotalScore=0
#Game over
self.isgameover=FALSE
#Pause
self.isPause=FALSE
#Start
self.isStart=FALSE
self.NextList=[];self.NextRowList=[]
r=0;c=0
for k in range(4*4):
LN=Label(master,text='',bg=str(self.nextg),fg='white',relief=FLAT,bd=4) LN.grid(row=r,column=WIDTH+c,sticky=N+E+S+W)
self.NextRowList.append(LN)
c=c+1
if c>=4:
r=r+1;c=0
self.NextList.append(self.NextRowList)
self.NextRowList=[]
self.BlockList=[];belList=[]
self.BlockRowList=[];belRowList=[]
row=0;col=0
for i in range(HEIGHT*WIDTH):
L=Label(master,text='',bg=str(self.backg),fg='white',relief=FLAT,bd=4) L.grid(row=row,column=col,sticky=N+E+S+W)
L.row=row;L.col=col;L.isactive=PASSIVE
self.BlockRowList.append(0);belRowList.append(L)
col=col+1
if col>=WIDTH:
row=row+1;col=0
self.BlockList.append(self.BlockRowList)
belList.append(belRowList)
self.BlockRowList=[];belRowList=[]
#file
fw=open('text.txt','a')
fw.close()
hasHead=FALSE
f=open('text.txt','r')