import pygame import random import math # Initialize Pygame pygame.init() # Set up the display WIDTH, HEIGHT = 800, 600 screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Psychedelic Pulse") # Colors BLACK = (0, 0, 0) WHITE = (255, 255, 255) # Player player_radius = 10 player_x = WIDTH // 2 player_y = HEIGHT - 50 # Goal goal_radius = 20 goal_x = WIDTH // 2 goal_y = 50 # Obstacles class PsychedelicShape: def __init__(self): self.x = random.randint(0, WIDTH) self.y = random.randint(100, HEIGHT - 100) self.radius = random.randint(20, 60) self.color = ( random.randint(100, 255), random.randint(100, 255), random.randint(100, 255), ) self.pulse_speed = random.uniform(0.05, 0.2) self.move_speed = random.uniform(1, 3) self.direction = random.choice([-1, 1]) def update(self): self.radius = ( abs(math.sin(pygame.time.get_ticks() * self.pulse_speed)) * 40 + 20 ) self.x += self.move_speed * self.direction if self.x < 0 or self.x > WIDTH: self.direction *= -1 def draw(self): pygame.draw.circle( screen, self.color, (int(self.x), int(self.y)), int(self.radius), ) # Create obstacles obstacles = [PsychedelicShape() for _ in range(10)] # Game loop clock = pygame.time.Clock() running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Move player keys = pygame.key.get_pressed() if keys[pygame.K_LEFT] and player_x > player_radius: player_x -= 5 if keys[pygame.K_RIGHT] and player_x < WIDTH - player_radius: player_x += 5 if keys[pygame.K_UP] and player_y > player_radius: player_y -= 5 if keys[pygame.K_DOWN] and player_y < HEIGHT - player_radius: player_y += 5 # Update obstacles for obstacle in obstacles: obstacle.update() # Check for collisions for obstacle in obstacles: distance = math.sqrt( (player_x - obstacle.x) ** 2 + (player_y - obstacle.y) ** 2 ) if distance < player_radius + obstacle.radius: player_x = WIDTH // 2 player_y = HEIGHT - 50 # Check for goal if ( math.sqrt((player_x - goal_x) ** 2 + (player_y - goal_y) ** 2) < player_radius + goal_radius ): print("You win!") running = False # Draw everything screen.fill(BLACK) for obstacle in obstacles: obstacle.draw() pygame.draw.circle( screen, WHITE, (int(player_x), int(player_y)), player_radius ) pygame.draw.circle( screen, (255, 215, 0), (goal_x, goal_y), goal_radius ) pygame.display.flip() clock.tick(60) pygame.quit()