Giới thiệu sản phẩm
import pygameimport randomcolors = [(0,0,0), (120,37,179), (100,179,179), (80,34,22), (80,134,22), (180,34,22), (100,34,122) ]class Figure: x = 0 y = 0 figures = [[[1,5,9,13],[4,5,6,7]], [[1,2,5,9],[0,4,5,6],[1,5,9,8],[4,5,6,10]], [[1,2,6,10],[5,6,7,9],[2,6,10,11],[3,5,6,7]], [[1,4,5,6],[1,4,5,9],[4,5,6,9],[1,5,6,9]], [[1,2,5,6]], [[0,1,5,6],[8,4,5,1]], [[0,1,2,5,8,9,10],[0,4,8,5,2,6,10]], ] def __init__(self,x,y): self.x = x self.y = y self.type = 5 self.color = random.randint(1,len(colors)-1) self.rotation = 0 def image(self): return self.figures[self.type][self.rotation] def rotate(self): self.rotation = (self.rotation+1)%len(self.figures[self.type])class Tetris: level = 2 score = 0 state = 'start' field = [] height = 0 width = 0 x = 100 y = 60 zoom = 20 figure = None def __init__(self,height,width): self.height = height self.width = width for i in range(height): new_line = [] for j in range(width): new_line.append(0) self.field.append(new_line) def new_figure(self): self.figure = Figure(3,0) def intersects(self): intersection = False for i in range(4): for j in range(4): if i*4+j in self.figure.image(): if i + self.figure.y > self.height - 1 or \ j + self.figure.x > self.width - 1 or \ j + self.figure.x < 0 or \ self.field[i + self.figure.y][j + self.figure.x] > 0: intersection = True return intersection def break_lines(self): lines = 0 for i in range(1,self.height): zerros = 0 for j in range(self.width): if self.field[i][j] == 0: zerros += 1 if zerros == 0: lines += 1 for i1 in range(i,1,-1): for j in range(self.width): self.field[i1][j] = self.field[i1-1][j] self.score += lines**2 def go_space(self): while not self.intersects(): self.figure.y += 1 self.figure.y -= 1 self.freeze() def go_down(self): self.figure.y += 1 if self.intersects(): self.figure.y -= 1 self.freeze() def freeze(self): for i in range(4): for j in range(4): if i*4 + j in self.figure.image(): self.field[i + self.figure.y][j + self.figure.x] = self.figure.color self.break_lines() self.new_figure() if self.intersects(): self.state = 'gameover'
Hình ảnh sản phẩm

Sản phẩm cùng tác giả
Sản phẩm liên quan
Không có sản phẩm nào
Đăng nhập để tham gia bình luận