#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Sep  9 16:29:23 2019

@author: clemente + gustavo
"""
import pygame

'''Setup variables'''
size = (800,710) #Window size


#RGB for colors
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)

'''Initialize pygame'''
pygame.init()

'''Activate the window display'''
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Dijkstra's algorithm")

done = False #Control boolean variables

'''Activate clock'''
#Manages the speed of updates in the window
clock = pygame.time.Clock()

'''Grid setup'''
width=8
height=8
margin=1

x = width 
y = height

'''Game loop'''
#Al the Dijkstra graphical simulation goes inside this while loop
while not done:
    #This section allows the window to be closed
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True
    
    screen.fill(WHITE) #Window background color
    
    for column in range(0, 800, width):
        for row in range(0, 710, height):
            pygame.draw.rect(screen, BLACK, [column,row,width,height], 1)
    
    #Example of movements
    #To select a given square, it needs to be colored, for example:
    #The next line chooses the first square from upper left corner
    pygame.draw.rect(screen, BLACK, [ 0, 0, width - 1, height - 1])
    #The next line chooses the square( 25, 25)
    pygame.draw.rect(screen, RED, [x*(25 - 1) , y*(25 - 1), width -1 , height - 1])
    #The next line chooses the square(39,10)
    pygame.draw.rect(screen, RED, [x*(39 - 1), y*(10 - 1) , width - 1, height - 1])

    #The next line chooses the square(10,10) # en realidad se hace en (X+1, Y+1), hay que restarle -1 para que quede donde es
    pygame.draw.rect(screen, RED, [x*(10 - 1) , y*(10 - 1), width - 1, height - 1])

    """ Create rectangle algorithm """
    # Select 2 points in the space randomly.
    # Check the selected points are not equals, if not, select other 2 points.
    # Make a rectangle with 2 points.
        # How to make a rectangle?
            # Español:
            # 1. Conocer cuál es el menor (ej. X de a < X de b, o X de b < X de a).
            # 2. Extender una línea sobre X y Y del punto menor para alcanzar (X, Y) del punto mayor.
                # Ejemplo: dados a(1, 2) y b(3, 6), hacer:
                # a es menor.
                # del punto a en el eje X se extenderá una línea recta hacia X = 3 (del punto b)
                    # nuevo_punto = a_xe(3, 2)
                # del punto a en el eje Y se extenderá una línea hacia Y = 6 (del punto b)
                    # nuevo_punto = a_ye(1, 6)
            # 3. Extender líneas desde los puntos a_xe (sobre el eje Y) y a_ye (sobre el eje X) al punto b.
            # 4. Rellenar el espacio entre esos puntos.

    pygame.display.flip() #Actualize a change in the window (important)
    
    clock.tick(60) #60 fps only

#Close the window
pygame.quit()