python-examples: 443854fb317220a462488d0441a1b0b086b2f6b6
1: import random, pygame, time
2: pygame.init()
3: screen = pygame.display.set_mode((600,600))
4:
5: class Square:
6:
7: def __init__(self, side, topleft, height):
8: self.side = side
9: self.topleft = topleft
10: self.height = height
11:
12: def draw(self, screen):
13: pygame.draw.rect(screen, (0, 255 / self.height, 0), (self.topleft, (self.side, self.side)))
14:
15: def subdivide(self):
16: new_squares = []
17: new_squares.append(Square(self.side/2, self.topleft, self.height + random.randint(-1, 1)))
18: new_squares.append(Square(self.side/2, (self.topleft[0] + self.side/2, self.topleft[1]), self.height + random.randint(-1, 1)))
19: new_squares.append(Square(self.side/2, (self.topleft[0], self.topleft[1] + self.side/2), self.height + random.randint(-1, 1)))
20: new_squares.append(Square(self.side/2, (self.topleft[0] + self.side/2, self.topleft[1] + self.side/2), self.height + random.randint(-1, 1)))
21: return new_squares
22:
23: square = Square(600, (0, 0), 128)
24: #subdivided = []
25: square.draw(screen)
26: subdivided1 = square.subdivide()
27: subdivided2 = []
28: for subsquare in subdivided1:
29: subdivided2.append(subsquare.subdivide())
30: for subsquare in subdivided2:
31: for element in subsquare:
32: element.draw(screen)
33: pygame.display.update()
34: while True:
35: time.sleep(1)
Generated by git2html.