import pygame
import random
import sys
Initialize Pygame
pygame.init()
Screen dimensions
WIDTH, HEIGHT = 800, 600
Colors
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
Initialize screen
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption(“Random Dodge Game”)
Clock for controlling frame rate
clock = pygame.time.Clock()
Player properties
player_size = 50
player_pos = [WIDTH // 2, HEIGHT - 2 * player_size]
player_speed = 10
Enemy properties
enemy_size = 50
enemy_pos = [random.randint(0, WIDTH - enemy_size), 0]
enemy_speed = 5
Score
score = 0
font = pygame.font.Font(None, 36)
def detect_collision(player_pos, enemy_pos):
px, py = player_pos
ex, ey = enemy_pos
if (px < ex + enemy_size and px + player_size > ex and
py < ey + enemy_size and py + player_size > ey):
return True
return False
Game loop
running = True
game_started = False
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
game_started = True
if not game_started:
screen.fill(BLACK)
start_text = font.render("Press ENTER to Start", True, WHITE)
screen.blit(start_text, (WIDTH // 2 - start_text.get_width() // 2, HEIGHT // 2))
pygame.display.flip()
continue
# Player movement
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and player_pos[0] > 0:
player_pos[0] -= player_speed
if keys[pygame.K_RIGHT] and player_pos[0] < WIDTH - player_size:
player_pos[0] += player_speed
# Enemy movement
enemy_pos[1] += enemy_speed
if enemy_pos[1] > HEIGHT:
enemy_pos[0] = random.randint(0, WIDTH - enemy_size)
enemy_pos[1] = 0
score += 1
enemy_speed += 0.5 # Increase difficulty
# Check for collision
if detect_collision(player_pos, enemy_pos):
print(f"Game Over! Final Score: {score}")
running = False
# Draw everything
screen.fill(BLACK)
pygame.draw.rect(screen, BLUE, (*player_pos, player_size, player_size))
pygame.draw.rect(screen, RED, (*enemy_pos, enemy_size, enemy_size))
# Display score
score_text = font.render(f"Score: {score}", True, WHITE)
screen.blit(score_text, (10, 10))
# Update the display
pygame.display.flip()
# Control frame rate
clock.tick(30)
Quit Pygame
pygame.quit()
sys.exit()