Ejemplo n.º 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);
                }
            }
        }
Ejemplo n.º 2
0
 public void GenerarNumeroAAdivinar()
 {
     NumeroAAdivinarPorElJugador = GeneradorDeNumero.GenerarNumeroAlAzar();
 }