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