Esempio n. 1
0
    public AI_Result[] IsAnyForks(GridPosition[] positions, char player)
    {
        AI_Result[] results;

        if (positions.Count(p => p.character == ' ') == 2 && positions.Count(p => p.character == player) == 1)
        {
            GridPosition[] f = positions.Where(p => p.character == ' ').ToArray();
            results = new AI_Result[f.Length];
            for (int i = 0; i < f.Length; i++)
            {
                results[i] = new AI_Result
                {
                    sucess = true,
                    x      = f[i].x,
                    y      = f[i].y
                };
            }

            return(results);
        }

        results = new AI_Result[0];

        return(results);
    }
Esempio n. 2
0
    public AI_Result[] GetFork(char player)
    {
        AI_Result[] aux;

        aux = IsAnyForks(GameManager.GetRow(0), player);
        if (aux.Length > 0)
        {
            return(aux);
        }

        aux = IsAnyForks(GameManager.GetRow(1), player);
        if (aux.Length > 0)
        {
            return(aux);
        }

        aux = IsAnyForks(GameManager.GetRow(2), player);
        if (aux.Length > 0)
        {
            return(aux);
        }

        aux = IsAnyForks(GameManager.GetRow(0), player);
        if (aux.Length > 0)
        {
            return(aux);
        }

        aux = IsAnyForks(GameManager.GetRow(1), player);
        if (aux.Length > 0)
        {
            return(aux);
        }

        aux = IsAnyForks(GameManager.GetRow(2), player);
        if (aux.Length > 0)
        {
            return(aux);
        }

        aux = IsAnyForks(GameManager.GetDiagonal1(), player);
        if (aux.Length > 0)
        {
            return(aux);
        }

        aux = IsAnyForks(GameManager.GetDiagonal2(), player);
        if (aux.Length > 0)
        {
            return(aux);
        }

        aux = new AI_Result[0];

        return(aux);
    }
Esempio n. 3
0
    public AI_Result IsAnyBlock(char enemyChar)
    {
        AI_Result g = new AI_Result {
            sucess = false
        };

        if (GameManager.instance.player1.timesPlayed < 2)
        {
            return(g);
        }

        Debug.Log("IsAnyBlock " + enemyChar);

        //Horizontal
        g = CheckBlock(GameManager.GetRow(0), enemyChar);
        if (g)
        {
            return(g);
        }

        g = CheckBlock(GameManager.GetRow(1), enemyChar);
        if (g)
        {
            return(g);
        }

        g = CheckBlock(GameManager.GetRow(2), enemyChar);
        if (g)
        {
            return(g);
        }

        g = CheckBlock(GameManager.GetCollum(0), enemyChar);
        if (g)
        {
            return(g);
        }

        g = CheckBlock(GameManager.GetCollum(1), enemyChar);
        if (g)
        {
            return(g);
        }

        g = CheckBlock(GameManager.GetCollum(2), enemyChar);
        if (g)
        {
            return(g);
        }

        g = CheckBlock(GameManager.GetDiagonal1(), enemyChar);
        if (g)
        {
            return(g);
        }

        g = CheckBlock(GameManager.GetDiagonal2(), enemyChar);
        if (g)
        {
            return(g);
        }

        g.sucess = false;
        return(g);
    }
Esempio n. 4
0
 public void Play(AI_Result play)
 {
     Debug.Log(play);
     GetPosition(play.x, play.y).OnClick();
 }