Python 俄罗斯方块游戏

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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('',self.Up)

master.bind('',self.Left)

master.bind('',self.Right)

master.bind('',self.Down)

#master.bind('',self.Space)

master.bind('',self.Space)

master.bind('',self.Play)

master.bind('',self.Pause)

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')

相关文档
最新文档