Ejemplo n.º 1
0
    //funcion para dar tamaño al tablero es llamada desde el sizeBoard
    public void setBoardSize(byte _rows, byte _columns)
    {
        rows    = _rows;
        columns = _columns;
        //establecer el grill layaout
        tablero4.GetComponent <GridLayoutGroup>().constraintCount = _columns;
        //establezco la matriz de evaluacion dependiendo del tamaño del tablero.

        evMatrixCross = GameObject.Find("EvaluationMManager").GetComponent <EvaluationMatrixMannager>();
        evMatrixCross.u(rows, columns);
    }
Ejemplo n.º 2
0
    public int Evaluate(string player)
    {
        EvaluationMatrixMannager evMatrixCross = GameObject.Find("EvaluationMManager").GetComponent <EvaluationMatrixMannager>();

        //si puede ganar el jugador
        if (IsWinningPosition(player))
        {
            return(1000);
        }
        //si gana la IA
        if (IsWinningPosition(Opponent(player)))
        {
            return(-1000);
        }
        //si existe empate
        if (IsBoardFull())
        {
            return(0);
        }


        int evaluationSum = 0;



        //recorro el tablero
        //voy obteniendo los valores de la matriz de evaluacion de todas las casillas del tablero para que la IA planifique la mejor jugada.
        for (byte row = 0; row < rows; row++)
        {
            for (byte column = 0; column < columns; column++)
            {
                if (spaces[row, column] == player)
                {
                    evaluationSum += evMatrixCross.getValueEvaluationMatrix(row, column);
                }

                else if (spaces[row, column] == Opponent(player))
                {
                    evaluationSum -= evMatrixCross.getValueEvaluationMatrix(row, column);
                }
            }
        }
        return(evaluationSum);
    }