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

Thông tin tác giả

Vũ Nam Phong 12 tuổi

Địa vị cộng đồng: Nông dân

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

Bạn muốn thử làm game không?