Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2015
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.25 KB | None | 0 0
  1. import pygame
  2. import random
  3. from random import randint
  4.  
  5. pygame.init()
  6.  
  7. WHITE = 255, 255, 255
  8. BLACK = 0, 0, 0,
  9.  
  10. def GenerateColor():
  11.  
  12.     return randint(0, 255), randint(0, 255), randint(0, 255)
  13.    
  14. def GenerateSpeed():
  15.  
  16.     return random.uniform(0.8, 1.2)
  17.    
  18. def GenerateSize():
  19.  
  20.     return randint(10, 20)
  21.    
  22. def MutateColor(color):
  23.  
  24.     old_red, old_green, old_blue = color[0], color[1], color[2]
  25.     change_red, change_blue, change_green = randint(-5, 5), randint(-5, 5), randint(-5, 5)
  26.    
  27.     new_red = old_red + change_red
  28.     if new_red > 255:
  29.         new_red -= abs(change_red)
  30.     elif new_red < 0:
  31.         new_red += abs(change_red)
  32.    
  33.     new_green = old_green + change_green
  34.     if new_green > 255:
  35.         new_green -= abs(change_green)
  36.     elif new_green < 0:
  37.         new_green += abs(change_green)
  38.    
  39.     new_blue = old_blue + change_blue
  40.     if new_blue > 255:
  41.         new_blue -= abs(change_blue)
  42.     elif new_blue < 0:
  43.         new_blue += abs(change_blue)
  44.        
  45.     return new_red, new_green, new_blue
  46.  
  47. def MutateSpeed(speed):
  48.    
  49.     return random.uniform(0.8, 1.6) * speed
  50.    
  51.    
  52. class Cell(pygame.sprite.Sprite):
  53.  
  54.     def __init__(self, color, speed, size):
  55.         super().__init__()
  56.         self.color = color
  57.         self.speed = speed
  58.         self.size = size
  59.        
  60.         self.image = pygame.Surface([size * 4, size * 4])
  61.         self.image.fill(WHITE)
  62.         self.image.set_colorkey(WHITE)
  63.        
  64.         self.rect = self.image.get_rect()
  65.         pygame.draw.circle(self.image, color, [size, size], size)
  66.            
  67.    
  68. w_size = 700, 500
  69. screen = pygame.display.set_mode(w_size)
  70. pygame.display.set_caption('Evolution')
  71.  
  72. done = False
  73. clock = pygame.time.Clock()
  74.  
  75. cell_list = pygame.sprite.Group()
  76.  
  77. for i in range(25):
  78.  
  79.     cell = Cell(GenerateColor(), GenerateSpeed(), GenerateSize())
  80.     cell.rect.x = randint(0, w_size[0] - 100)
  81.     cell.rect.y = randint(0, w_size[1] - 100)
  82.     cell_list.add(cell)
  83.    
  84. while not done:
  85.  
  86.     for event in pygame.event.get():
  87.         if event.type == pygame.QUIT:
  88.             done = True
  89.            
  90.     screen.fill(WHITE)
  91.    
  92.     for cell in cell_list:
  93.    
  94.         direction = randint(0, 3)
  95.        
  96.         if direction == 0:
  97.             cell.rect.x += cell.speed
  98.         elif direction == 1:
  99.             cell.rect.x -= cell.speed
  100.         elif direction == 2:
  101.             cell.rect.y += cell.speed
  102.         elif direction == 3:
  103.             cell.rect.y -= cell.speed
  104.            
  105.     cell_list.draw(screen)
  106.     pygame.display.flip()
  107.     clock.tick(60)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement