import pygame

pygame.init()

screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Bounded Move")
clock = pygame.time.Clock()

BG    = (20, 20, 20)
GREEN = (60, 180, 80)

SIZE  = 50
x = 295.0
y = 215.0
speed = 4

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    keys = pygame.key.get_pressed()
    if keys[pygame.K_a]:
        x -= speed
    if keys[pygame.K_d]:
        x += speed
    if keys[pygame.K_w]:
        y -= speed
    if keys[pygame.K_s]:
        y += speed

    x = max(0, min(x, 640 - SIZE))
    y = max(0, min(y, 480 - SIZE))

    screen.fill(BG)
    pygame.draw.rect(screen, GREEN, (int(x), int(y), SIZE, SIZE))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
