pip install pygame import pygame import sys # --- INIT --- pygame.init() WIDTH, HEIGHT = 800, 400 SCREEN = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("PONG // Level 1") CLOCK = pygame.time.Clock() FPS = 60 WHITE = (255, 255, 255) BLACK = (0, 0, 0) # --- OBJECTS --- PADDLE_WIDTH, PADDLE_HEIGHT = 10, 80 BALL_SIZE = 10 player = pygame.Rect(30, HEIGHT//2 - PADDLE_HEIGHT//2, PADDLE_WIDTH, PADDLE_HEIGHT) enemy = pygame.Rect(WIDTH - 40, HEIGHT//2 - PADDLE_HEIGHT//2, PADDLE_WIDTH, PADDLE_HEIGHT) ball = pygame.Rect(WIDTH//2, HEIGHT//2, BALL_SIZE, BALL_SIZE) player_speed = 6 enemy_speed = 4 ball_speed_x = 5 ball_speed_y = 5 # --- GAME LOOP --- while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # --- INPUT --- keys = pygame.key.get_pressed() if keys[pygame.K_w] and player.top > 0: player.y -= player_speed if keys[pygame.K_s] and player.bottom < HEIGHT: player.y += player_speed # --- ENEMY AI (DETERMINISTIC) --- if enemy.centery < ball.centery: enemy.y += enemy_speed if enemy.centery > ball.centery: enemy.y -= enemy_speed # --- BALL MOVEMENT --- ball.x += ball_speed_x ball.y += ball_speed_y # --- COLLISIONS --- if ball.top <= 0 or ball.bottom >= HEIGHT: ball_speed_y *= -1 if ball.colliderect(player) or ball.colliderect(enemy): ball_speed_x *= -1 # --- RESET CONDITION --- if ball.left <= 0 or ball.right >= WIDTH: ball.center = (WIDTH//2, HEIGHT//2) ball_speed_x *= -1 # --- DRAW --- SCREEN.fill(BLACK) pygame.draw.rect(SCREEN, WHITE, player) pygame.draw.rect(SCREEN, WHITE, enemy) pygame.draw.ellipse(SCREEN, WHITE, ball) pygame.draw.aaline(SCREEN, WHITE, (WIDTH//2, 0), (WIDTH//2, HEIGHT)) pygame.display.flip() CLOCK.tick(FPS)