import twophase.solver as sv
import kociemba
import pygame
import sys
# cubestring = 'LLBUUFFFLBDDDRBFFRDLURFLRBRBLUUDUDRBURLRLBRBDLUFDBDUFF'
# solution = sv.solve(cubestring, 0, 2)
# print(solution)
# solution2 = kociemba.solve(cubestring)
# print(solution2, len(solution2))
#
# final_solution = []


# Initialize pygame
pygame.init()

# Define colors
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
GRAY = (150, 150, 150)

# Set up the screen
screen_width, screen_height = 400, 300
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Simple GUI with Pygame")

# Create a font
font = pygame.font.SysFont(None, 40)


# Function to display text on the screen
def draw_text(text, x, y, color):
    text_surface = font.render(text, True, color)
    screen.blit(text_surface, (x, y))


# Function to check if a point is inside a rectangle
def is_mouse_over(pos, rect):
    return rect.left < pos[0] < rect.right and rect.top < pos[1] < rect.bottom


# Function to create a button
def draw_button(rect, color, text):
    pygame.draw.rect(screen, color, rect)
    draw_text(text, rect.x + 10, rect.y + 10, BLACK)


class Button:
    rect = pygame.Rect
    isPressed = False
    name = "1"

    def draw(self, screen):
        if self.isPressed:
            pygame.draw.rect(screen, (0, 255, 0), self.rect)
        else:
            pygame.draw.rect(screen, (0, 0, 0), self.rect)
        draw_text(self.name, self.rect.x + 10, self.rect.y + 10, (255, 255, 255))



# Main function for GUI
def main():
    # Initialize variables
    number_input = ""

    # setup gui
    buttons = []
    buttonPoss = [
        (130, 10, 50, 50),
        (130, 70, 50, 50),
        (130, 190, 50, 50),
        (130, 250, 50, 50),
        (10, 130, 50, 50),
        (70, 130, 50, 50),
        (190, 130, 50, 50),
        (250, 130, 50, 50),

    ]
    for i, pos in enumerate(buttonPoss):
        buttons.append(Button())
        buttons[i].rect = pygame.Rect(pos)
        buttons[i].name = str(i)

    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_RETURN:
                    print("Entered number:", number_input)
                    number_input = ""
                elif event.key == pygame.K_BACKSPACE:
                    number_input = number_input[:-1]
                else:
                    number_input += event.unicode
            elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:
                mouse_pos = pygame.mouse.get_pos()
                for button in buttons:
                    button.isPressed = False
                    if is_mouse_over(mouse_pos, button.rect):
                        button.isPressed = True
                # # Check if the left mouse button is clicked on the buttons
                # if is_mouse_over(mouse_pos, pygame.Rect(150, 150, 100, 50)):
                #     print("Button 1 clicked!")
                # elif is_mouse_over(mouse_pos, pygame.Rect(150, 220, 100, 50)):
                #     print("Button 2 clicked!")

        # Clear the screen
        screen.fill(WHITE)

        # Draw the input field
        pygame.draw.rect(screen, GRAY, pygame.Rect(100, 50, 200, 40))
        draw_text(number_input, 110, 60, BLACK)

        # Draw buttons
        for button in buttons:
            button.draw(screen)
        # draw_button(pygame.Rect(150, 150, 100, 50), BLACK, "Button 1")
        # draw_button(pygame.Rect(150, 220, 100, 50), BLACK, "Button 2")

        # Update the display
        pygame.display.flip()


if __name__ == "__main__":
    main()

# i = 0
# while True:
#     # woo if statement spam
#     if solution[i] == "1":
#         final_solution[-1] += "n"
#         i += 2
#     elif solution[i] == "3":
#         final_solution[-1] += "p"
#         i += 2
#     elif solution[i] == "2":
#         final_solution[-1] += "n"
#         final_solution.append(final_solution[-1])
#         i += 2
#     elif solution[i] == "(":
#         break
#     else:
#         final_solution.append(solution[i])
#         i += 1
#
# print(final_solution)

