Neste artigo, veremos como podemos visualizar o algoritmo de classificação de bolhas usando o PyGame, ou seja, quando o aplicativo pygame é iniciado, podemos ver as barras não classificadas com alturas diferentes e quando clicamos na tecla da barra de espaço, ele começa a ser organizado em forma de bolha, ou seja, após cada elemento de valor máximo de iteração deve vir por último.

Bubble Sort é um algoritmo simples usado para classificar um determinado conjunto de n elementos fornecidos na forma de uma matriz com n número de elementos. O Bubble Sort compara todos os elementos um por um e os classifica com base em seus valores.

Etapas de implementação:

1. Crie uma janela principal
2. Preencha a janela principal com a cor preta
3. Crie um método para mostrar a lista de barras com lacunas específicas entre elas
4. Obtenha a entrada de teclas do usuário
5. Se a barra de espaço for pressionada, inicie o processo de classificação
6. Implemente o algoritmo de classificação de bolhas na lista
7. Após cada iteração interna, preencha a tela com a cor preta e chame o método show para mostrar a lista iterada na forma de barra.

Abaixo está a implementação



import pygame 
  
pygame.init() 
win = pygame.display.set_mode((500, 400)) 
pygame.display.set_caption("Bubble sort") 
x = 40
y = 40
width = 20
height = [200, 50, 130, 90, 250, 61, 110, 
            88, 33, 80, 70, 159, 180, 20] 
  
run = True
def show(height): 
  
    
    for i in range(len(height)): 
        pygame.draw.rect(win, (255, 0, 0), (x + 30 * i, y, width, height[i])) 
while run: 
  
    
    execute = False
  
    
    pygame.time.delay(10) 
  
    
    keys = pygame.key.get_pressed() 
  
    
    for event in pygame.event.get(): 
        if event.type == pygame.QUIT: 
      run = False
  
    
    if keys[pygame.K_SPACE]: 
      execute = True
  
    
    if execute == False: 
        win.fill((0, 0, 0)) 
        show(height) 
        pygame.display.update() 
  
    
    else: 
        for i in range(len(height) - 1): 
      for j in range(len(height) - i - 1): 
              if height[j] > height[j + 1]: 
                                t = height[j] 
                    height[j] = height[j + 1] 
                    height[j + 1] = t 
              win.fill((0, 0, 0)) 
              show(height) 
              pygame.time.delay(50) 
              pygame.display.update() 
pygame.quit() 

Resultado :