I am a beginner in python and need some help polishing my game

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()

2 Likes

Please edit your post and put all the code into a pre-formatted text block.
You can select all the text and then click the </> button.
Or you can type three-backticks at the start and end of the code like this:

```
your code
goes here
```
1 Like