import pygame


class MLPlay:
    def __init__(self, ai_name: str, *args, **kwargs):
        self.ai_name = ai_name
        print(f"Initial {__file__} script with ai_name:{ai_name}")

    def update(self, scene_info: dict, keyboard: list = [], *args, **kwargs):
        """
        Generate the command according to the received scene information
        """
        # print("AI received data from game :", json.dumps(scene_info))
        # print(scene_info)
        actions = []

        if pygame.K_w in keyboard or pygame.K_UP in keyboard:
            actions.append("UP")
        elif pygame.K_s in keyboard or pygame.K_DOWN in keyboard:
            actions.append("DOWN")

        elif pygame.K_a in keyboard or pygame.K_LEFT in keyboard:
            actions.append("LEFT")
        elif pygame.K_d in keyboard or pygame.K_RIGHT in keyboard:
            actions.append("RIGHT")
        else:
            actions.append("NONE")

        return actions

    def reset(self):
        """
        Reset the status
        """
        print("reset ml script")
        pass