俄罗斯方块.py

(开头部分) 7KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

# -*- coding: cp936 -*-

"""python2.7 / Windows控制台"""

import os,time,random,msvcrt


helpInfo=u"""A S D W 操控
Num 1-4 游戏速度
Space   暂停
R       重玩
Q       变换花色
G       屏幕大小
Esc     退出"""

gridWidth,gridHeight=10,20 #栅格宽高

rewardDict={1:1,2:3,3:6,4:10} #炸楼/得分表

gears={1:.64,2:.32,3:.16,4:.08} #速度/刷新时间间隔
gameSpeed=1

patterns=u"■◇●¤◆※▓卐╬囧" #填充花色
def pTurntable():
	while True:
		for c in patterns:
			yield c
nPattern=pTurntable()
cellPattern=next(nPattern)



class Tetris():
	mino_I=((0,0),(1,0),(2,0),(3,0)) , ((1,-1),(1,0),(1,1),(1,2))
	mino_J=((0,0),(0,1),(1,1),(2,1)) , ((0,-1),(0,0),(0,1),(1,-1)) , ((0,0),(2,1),(1,0),(2,0)) , ((0,1),(1,-1),(1,0),(1,1))
	mino_L=((0,0),(0,1),(1,0),(2,0)) , ((0,-1),(1,0),(1,1),(1,-1)) , ((0,1),(2,0),(1,1),(2,1)) , ((0,-1),(0,0),(0,1),(1,1))
	mino_O=((0,0),(1,0),(0,1),(1,1)) ,
	mino_S=((0,-1),(0,0),(1,1),(1,0)) , ((0,1),(1,0),(1,1),(2,0))
	mino_Z=((0,0),(0,1),(1,-1),(1,0)) , ((0,0),(1,1),(1,0),(2,1))
	mino_T=((0,0),(1,-1),(1,1),(1,0)) , ((0,1),(1,0),(1,1),(2,1)) , ((0,-1),(0,0),(0,1),(1,0)) , ((0,0),(1,1),(1,0),(2,0))
	minos=(mino_I,mino_J,mino_L,mino_O,mino_S,mino_Z,mino_T)


	def __init__(self):
		self.matrix=[[0 for c in range(gridWidth)] for r in range(gridHeight)] #栅格:0表示空白,1表示降落中的方块,2表示落地的方块
		self.score=0
		self.iCY=self.iCY0=gridHeight #基点位置/初始位置
		self.iCX=self.iCX0=gridWidth//2-1
		self.focusFig,self.focusPos=self._minoRandPick()
		self.nextFig,self.nextPos=self._minoRandPick()
		self.cellsCoos=self._cellsCCalc(self.focusPos,self.iCX) #方块所在坐标
		self.message=helpInfo


	def _minoRandPick(self):
		figure=random.choice(self.__class__.minos)
		posture=random.choice(figure)
		return figure,posture


后面还有 208 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。