//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); }
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); }