import pygame import math

Initialize the game

pygame.init() screen = pygame.display.set_mode((800, 600)) clock = pygame.time.Clock()

Colors

WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0)

Car class

class Car: def init(self, x, y): self.x = x self.y = y self.angle = 0 self.speed = 0

def update(self):
    self.x += self.speed * math.cos(math.radians(self.angle))
    self.y -= self.speed * math.sin(math.radians(self.angle))

def draw(self):
    car_rect = pygame.Rect(0, 0, 40, 20)
    rotated_car = pygame.transform.rotate(pygame.Surface((40, 20)), -self.angle)
    rotated_car.fill(RED)
    rect = rotated_car.get_rect(center=(self.x, self.y))
    screen.blit(rotated_car, rect.topleft)

Loopty Doop class

class LooptyDoop: def init(self, x, y, radius): self.x = x self.y = y self.radius = radius

def draw(self):
    pygame.draw.circle(screen, WHITE, (self.x, self.y), self.radius, 2)

Initialize car and loopty doops

car = Car(400, 300) loopty_doops = [ LooptyDoop(200, 300, 100), LooptyDoop(400, 300, 150), LooptyDoop(600, 300, 100) ]

Game loop

running = True while running: screen.fill(BLACK)

# Event handling
for event in pygame.event.get():
    if event.type == pygame.QUIT:
        running = False

# Movement handling
keys = pygame.key.get_pressed()
if keys[pygame.K_UP]:
    car.speed = 5
elif keys[pygame.K_DOWN]:
    car.speed = -5
else:
    car.speed = 0

if keys[pygame.K_LEFT]:
    car.angle += 5
if keys[pygame.K_RIGHT]:
    car.angle -= 5

# Update and draw car
car.update()
car.draw()

# Draw loopty doops
for loopty_doop in loopty_doops:
    loopty_doop.draw()

# Update the display
pygame.display.flip()
clock.tick(60)

pygame.quit()