,

,
 avatar
unknown
python
2 years ago
2.2 kB
3
Indexable
import pygame
from random import randint

pygame.init()

back = (190, 200, 255)
mw = pygame.display.set_mode((500, 500))
mw.fill(back)

clock = pygame.time.Clock()

class Area:
    def __init__(self, x, y, width, heigh, color):
        self.rect = pygame.Rect(x, y, width, heigh)
        self.fill_color = color
    
    def color(self, new_color):
        self.fill_color = new_color
    
    def fill(self):
        pygame.draw.rect(mw, self.fill_color, self.rect)

    def outline(self, frame_color, thickness):
        pygame.draw.rect(mw, frame_color, self.rect, thickness) 
    def collidepoint(self, x, y):
        return self.rect.collidepoint(x, y)
        
class Label(Area):
    def set_text(self, text, fsize=12, text_color=(0, 0, 0)):
        self.image = pygame.font.SysFont("verdana", fsize).render(text, True, text_color)

    def draw(self, shift_x=0, shift_y=0):
        self.fill()
        mw.blit(self.image, (self.rect.x+shift_x, self.rect.y+shift_y))

YELLOW = (255, 255, 0)
DARK_BLUE = (0, 0, 100)
BLUE = (94, 94, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 51)

cards = []
num_cards = 4
x = 70

for i in range(num_cards):
    new_card = Label(x, 170, 70, 100, YELLOW)
    new_card.outline(BLUE, 10)
    new_card.set_text("POOF", 26)
    cards.append(new_card)
    x += 100

wait = 0
while True:
    if wait == 0:
        wait = 20
        click = randint(1, num_cards)
        for i in range(num_cards):
            cards[i].color(YELLOW)
            if (i+1) == click:
                cards[i].draw(10, 40)
            else:
                cards[i].fill()
    else:
        wait -= 1
    
    for event in pygame.event.get():
        if event.type == pygame.MOSEBUTTONDOWN and event.button == 1:
            x, y = event.pos
            for i in range(num_cards):
                if cards[i].collidepoint(x, y)
                    if i+1 == click:
                        cards[i].color(GREEN)
                    else:
                        cards[i].color(RED)
                    cards[i].fill()





        pygame.display.update()
        clock.tick(40)
Editor is loading...
Leave a Comment