import pygame
import pygame.locals

class Square(object):
    def __init__(self, pos, size):
        self.pos = pos
        self.size = size
        self.color = pygame.color.Color(0, 255, 255)

    def draw(self, surface):
        int_pos = (int(self.pos[0]), int(self.pos[1]))
        pygame.draw.polygon(surface, self.color,
                            [int_pos,
                             (int_pos[0], int_pos[1] + self.size),
                             (int_pos[0] + self.size, int_pos[1] + self.size),
                             (int_pos[0] + self.size, int_pos[1])])

    def move(self, where):
        self.pos = (self.pos[0] + where[0], self.pos[1] + where[1])
        
def arrow_keys(shape, size, speed):
    pygame.init()
    pygame.key.set_repeat(50, 50)
    screen = pygame.display.set_mode(size)
    running = True

    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    shape.move((-speed, 0))
                elif event.key == pygame.K_RIGHT:
                    shape.move((speed, 0))
                elif event.key == pygame.K_UP:
                    shape.move((0, -speed))
                elif event.key == pygame.K_DOWN:
                    shape.move((0, speed))
                    
            screen.fill(pygame.color.Color(0, 0, 0))
            shape.draw(screen)
            pygame.display.flip()
                
    pygame.quit()
    
def clocked(shape, size, vector, period):
    pygame.init()
    screen = pygame.display.set_mode(size)
    TICK = pygame.locals.USEREVENT + 1
    pygame.time.set_timer(TICK, period)
    running = True

    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
            elif event.type == TICK:
                shape.move(vector)
                screen.fill(pygame.color.Color(0, 0, 0))
                shape.draw(screen)
                pygame.display.flip()
                
    pygame.quit()


