Exemplo n.º 1
0
    public void Run()
    {
        message.gameObject.SetActive(false);
        Vector2Int start  = new Vector2Int(1, size - 2);
        Vector2Int finish = new Vector2Int(size - 2, 1);

        if (!Astar.FindPath(labGrid, start, finish))
        {
            message.gameObject.SetActive(true);
            message.text  = "NO PATH AVAILABLE";
            message.color = Color.red;
            return;
        }
        IsAlgorithmRunning = true;
        bool         isTimeout;
        List <Child> bestOfGeneration = GAController.GeneticAlgorithm(labGrid.grid, size, start, finish, out isTimeout);

        if (bestOfGeneration != null)
        {
            message.gameObject.SetActive(true);
            message.text  = "PATH FOUND";
            message.color = Color.blue;

            StartCoroutine(ShowGenerations(bestOfGeneration, start, finish));
        }
        else if (isTimeout)
        {
            message.gameObject.SetActive(true);
            message.text  = "TIMEOUT";
            message.color = Color.blue;
        }
    }