🔒 Closed PyGame Sorting Visualizer || Bubble Sort Algorithm (SKL)

Status
Not open for further replies.

PHC-MakiBoT

Forum Guru
Guyz Share ko lang (SKL) ;)

Sorting Visualizer with Bubble Sort Algorithm
83 lines lang poo ng code :giggle:

✅ Pahingi na din po ng mga ideas for python or pygame coding ,

Note:
Install nyo muna yung pygame: pip install pygame


====================================================================

Code:
import pygame
from random import *
import time
import os
pygame.init    ()
window = pygame.display.set_mode((720,480))
pygame.display.set_caption("Sorting Visualizer || Bubble Sort Algorithm || Version 1.0")

white = (255,255,255)
black = (0,0,0)
green = ((0,255,0))
red = ((255,0,0))
blue = (0, 0, 128)

X = 50
Y = 50

run = True
data_arr = [0] * 72
sort = False
def gen_seed():
    arr_height = []
    for _ in range(72):
        value = randint(1,480)
        arr_height.append(value)
    return arr_height
def draw_seed(arr_data):
    offset = 0
    i = 0
    for _ in range(72):
        pygame.draw.rect(window, black, [offset,480,10,arr_data[i] * -1])
        i += 1
        offset += 10
    return arr_data
def bubble_sort(data):
        for j in range(len(data)-1):
            if data[j] > data[j + 1]:
                data[j], data[j + 1] = data[j + 1], data[j]

def drawStatus(isSort):
    if isSort:
        font1 = pygame.font.Font('freesansbold.ttf', 20)
        text1 = font1.render('Hit "ENTER" to Stop Bubble Sort', True, green, blue)
        textRect1 = text1.get_rect()
        textRect1.center = (X // 2 * 7, Y // 2)
        window.blit(text1, textRect1)

        font4 = pygame.font.Font('freesansbold.ttf', 20)
        text4 = font4.render('Stop the bubble sort to before generate new!', True, green, blue)
        textRect4 = text4.get_rect()
        textRect4.center = (X // 2 * 9, Y // 2 * 2)
        window.blit(text4, textRect4)
    else:
        font2 = pygame.font.Font('freesansbold.ttf', 20)
        text2 = font2.render('Hit "SPACE" to generate', True, green, blue)
        textRect2 = text2.get_rect()
        textRect2.center = (X // 2 * 6, Y // 2 * 2)
        window.blit(text2, textRect2)

        font3 = pygame.font.Font('freesansbold.ttf', 20)
        text3 = font3.render('Hit "ENTER" to Start Bubble Sort', True, green, blue)
        textRect3 = text3.get_rect()
        textRect3.center = (X // 2 * 7, Y // 2)
        window.blit(text3, textRect3)
    
while run:
    time.sleep(0.05)
    window.fill(white)
    drawStatus(sort)
    if sort:
        bubble_sort(data_arr)
        draw_seed(data_arr)
    else:
        draw_seed(data_arr)
    for event in pygame.event.get():
        if (event.type == pygame.QUIT):
            run = False
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_SPACE:
                if sort:
                    print("Sorting Status: ON  : Hit ENTER to turn OFF")
                else:
                    data_arr = gen_seed()
            if event.key == pygame.K_RETURN:
                if sort:
                    sort = False
                else:
                    sort = True
    pygame.display.update()
pygame.quit()


====================================================================
Sa mga nahihilo sa copy/paste iDownload nyo nalang yung file na naka attach ✅
hope you like it po
 

Attachments

Mahirap ba pag aralan ang python ts?

Depende po kung mag background kana sa programming like basic identifiers, if elseif else statement, Loops
medyo mababago lang yan pag dating sa python,

Example:
java:
if (conding) {
#code
}

python:
if conditon:
[Space] #code

kung si java naka base sa parenthesis si python naka base sa indent or yung space bago yung code.
madali lang sya lods,
 
Status
Not open for further replies.

About this Thread

  • 2
    Replies
  • 459
    Views
  • 2
    Participants
Last reply from:
PHC-MakiBoT

Online now

Members online
1,107
Guests online
867
Total visitors
1,974

Forum statistics

Threads
2,277,006
Posts
28,973,700
Members
1,229,683
Latest member
sororities
Back
Top