import pygame # Coloque aqui o código do jogo adaptado para rodar no navegador import pygame import random import time # Inicialização do Pygame pygame.init() # Configurações da tela WIDTH, HEIGHT = 1200, 700 screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("VECO Come-Come") # Cores WHITE = (255, 255, 255) BLACK = (0, 0, 0) BLUE = (0, 0, 255) # CÁ RED = (255, 0, 0) # LÊ DARK_YELLOW = (200, 170, 0) # FÊ # Fonte para os textos font = pygame.font.Font(None, 24) # Configuração do jogo PLAYER_RADIUS = 50 BALL_RADIUS = 20 player_speed = 9 num_balls_per_type = 20 # Número de bolinhas por tipo (CÁ, FÊ, LÊ) game_time = 15 # segundos # Inicializar a bola controlada pelo jogador (VECO) veco = {"x": WIDTH // 2, "y": HEIGHT // 2, "color": WHITE} # Inicializar as bolinhas coloridas (CÁ, FÊ e LÊ) ball_types = [("CÁ", BLUE), ("FÊ", DARK_YELLOW), ("LÊ", RED)] balls = [] for ball_type, color in ball_types: for _ in range(num_balls_per_type): balls.append({ "x": random.randint(BALL_RADIUS, WIDTH - BALL_RADIUS), "y": random.randint(BALL_RADIUS, HEIGHT - BALL_RADIUS), "dx": random.choice([-4, 4]), # Velocidade um pouco mais rápida "dy": random.choice([-4, 4]), "color": color, "type": ball_type, "eaten": False }) # Contador de bolinhas comidas score = {"FÊ": 0, "CÁ": 0, "LÊ": 0} # Tempo de início do jogo start_time = time.time() # Loop principal do jogo running = True clock = pygame.time.Clock() while running: elapsed_time = time.time() - start_time remaining_time = max(0, game_time - int(elapsed_time)) # Processamento de eventos for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Movimento da bola VECO (setas do teclado) keys = pygame.key.get_pressed() if keys[pygame.K_UP] and veco["y"] > PLAYER_RADIUS: veco["y"] -= player_speed if keys[pygame.K_DOWN] and veco["y"] < HEIGHT - PLAYER_RADIUS: veco["y"] += player_speed if keys[pygame.K_LEFT] and veco["x"] > PLAYER_RADIUS: veco["x"] -= player_speed if keys[pygame.K_RIGHT] and veco["x"] < WIDTH - PLAYER_RADIUS: veco["x"] += player_speed # Movimento das bolinhas coloridas e colisão com as paredes for ball in balls: if not ball["eaten"]: ball["x"] += ball["dx"] ball["y"] += ball["dy"] # Rebote nas paredes if ball["x"] <= BALL_RADIUS or ball["x"] >= WIDTH - BALL_RADIUS: ball["dx"] *= -1 if ball["y"] <= BALL_RADIUS or ball["y"] >= HEIGHT - BALL_RADIUS: ball["dy"] *= -1 # Verificar colisão com VECO dx = veco["x"] - ball["x"] dy = veco["y"] - ball["y"] distance = (dx ** 2 + dy ** 2) ** 0.5 if distance < PLAYER_RADIUS + BALL_RADIUS: ball["eaten"] = True score[ball["type"]] += 1 # Renderização screen.fill(BLACK) # Desenhar a bola controlada (VECO) pygame.draw.circle(screen, veco["color"], (veco["x"], veco["y"]), PLAYER_RADIUS) text_veco = font.render("VECO", True, BLACK) screen.blit(text_veco, (veco["x"] - 25, veco["y"] - 10)) # Desenhar as bolinhas coloridas for ball in balls: if not ball["eaten"]: pygame.draw.circle(screen, ball["color"], (ball["x"], ball["y"]), BALL_RADIUS) ball_text = font.render(ball["type"], True, BLACK) screen.blit(ball_text, (ball["x"] - 12, ball["y"] - 8)) # Exibir tempo restante timer_text = font.render(f"Tempo: {remaining_time}s", True, WHITE) screen.blit(timer_text, (WIDTH // 2 - 50, 20)) pygame.display.flip() clock.tick(60) # Finalizar jogo após o tempo acabar if elapsed_time >= game_time: running = False # Exibir ranking final screen.fill(BLACK) ranking_text = font.render("Ranking de bolinhas comidas:", True, WHITE) screen.blit(ranking_text, (WIDTH // 2 - 150, HEIGHT // 2 - 100)) sorted_score = sorted(score.items(), key=lambda item: item[1], reverse=True) y_offset = HEIGHT // 2 - 50 for idx, (ball_type, amount) in enumerate(sorted_score): result_text = font.render(f"{idx+1}. {ball_type}: {amount}", True, WHITE) screen.blit(result_text, (WIDTH // 2 - 50, y_offset + idx * 40)) pygame.display.flip() # Espera para visualizar o ranking antes de fechar pygame.time.delay(5000) pygame.quit()