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
Hãy bình luận để nhặt 100 thóc nhé

Đăng nhập để tham gia bình luận