예제 #1
0
        public void Adivinar()
        {
            NumeroAdivinadoPorLaCompu = null;
            if (reglasDeLaCompu.Count == 0)
            {
                NumeroAdivinadoPorLaCompu = GeneradorDeNumero.GenerarNumeroAlAzar();
                CantidadDeOpciones = 120960; //10.9.8.7   4.3.2
            }

            else
            {
                var nums = new List<GeneradorDeNumero>();
                foreach (var regla in reglasDeLaCompu)
                {
                    var numeros = regla.Generar();
                    nums = nums.Count == 0 ? new List<GeneradorDeNumero>(numeros) : Unificar(nums, numeros);
                }

                if (nums.Count > 0)
                {
                    CantidadDeOpciones = CalcularOpciones(nums);
                    var numerosNoPermitidos = reglasDeLaCompu.Select(r => r.ConvertirEnGeneradorDeNumero);
                    GeneradorDeNumero num = null;

                    foreach (var n in nums)
                    {
                        var numerosPosibles = n.ObtenerPosibles(numerosNoPermitidos);
                        if (numerosPosibles.Count > 0)
                        {
                            num = numerosPosibles.First();
                            break;
                        }
                    }

                    NumeroAdivinadoPorLaCompu = num == null ? null : new Numero(num);
                }
            }
        }
예제 #2
0
        public static double Operar(Numero n1, Numero n2, string operador)
        {
            double resultado = 0;

            switch (operador)
            {
            case "+":
                resultado = n1.GetNumero() + n2.GetNumero();
                break;

            case "-":
                resultado = n1.GetNumero() - n2.GetNumero();
                break;

            case "*":
                resultado = n1.GetNumero() * n2.GetNumero();
                break;

            case "/":
                resultado = n1.GetNumero() / n2.GetNumero();
                break;
            }
            return(resultado);
        }
예제 #3
0
 public void GenerarNumeroAAdivinar()
 {
     NumeroAAdivinarPorElJugador = GeneradorDeNumero.GenerarNumeroAlAzar();
 }
예제 #4
0
 public Regla AgregarRegla(Numero n, int bien, int regular)
 {
     var regla = new Regla(n, bien, regular);
     reglasDeLaCompu.Add(regla);
     return regla;
 }
예제 #5
0
 public void SetNumero(string cadena)
 {
     this._numero = Numero.ValidarNumero(cadena);
 }
예제 #6
0
 public void GenerarNumeroAAdivinar()
 {
     NumeroAAdivinarPorElJugador = GeneradorDeNumero.GenerarNumeroAlAzar();
 }
예제 #7
0
 public Regla(Numero numero, int bien, int regular) : base(numero, bien, regular)
 {
 }
예제 #8
0
 public bool Equals(Numero other)
 {
     if (ReferenceEquals(null, other))
         return false;
     if (ReferenceEquals(this, other))
         return true;
     return other.n0 == num[0] && other.n1 == num[1] && other.n2 == num[2] && other.n3 == num[3];
 }
 /// <summary>
 /// Recibe un string referente al objeto numero
 /// </summary>
 /// <param name="numero">string para validar</param>
 private void setNumero(string numero)
 {
     this._numero = Numero.validarNumero(numero);
 }
예제 #10
0
 public Regla(Numero numero, int bien, int regular)
     : base(numero, bien, regular)
 {
 }