Пример #1
0
 private void GenerarNumeros()
 {
     LimpiarTablas();
     if (radioButton3.Checked)
     {
         _generadorAleatorio = new AleatorioSistema();
     }
     else
     {
         var a       = int.Parse(txt_aA.Text);
         var m       = int.Parse(txt_mA.Text);
         var semilla = double.Parse(txt_semillaA.Text);
         //Congruencial Multiplicativo : Xn = (A * Xn-1 ) Mod M
         if (radioButton2.Checked)
         {
             _generadorAleatorio = new CongruencialMultiplicativo(semilla, a, m);
         }
         //Congruencial Mixto : Xn = (A * Xn-1 + C ) Mod M
         else if (radioButton1.Checked)
         {
             var c = int.Parse(txt_cA.Text);
             _generadorAleatorio = new CongruencialMixto(semilla, a, c, m);
         }
     }
     generarDistribucion();
 }
 public DistribucionExponencialNegativa(double lambda, IGeneradores generador)
 {
     if (lambda <= 0)
     {
         throw new NotSupportedException("El valor del Lambda debe ser un número positivo!");
     }
     _lambda    = lambda;
     _generator = generador;
 }
 public DistribucionExponencialNegativa(double lambda)
 {
     if (lambda <= 0)
     {
         throw new NotSupportedException("El valor del Lambda debe ser un número positivo!");
     }
     _lambda    = lambda;
     _generator = new AleatorioSistema();
 }
Пример #4
0
        public void cargar_barcos(int jugador)
        {
            int   _barcos   = 1;
            int   _longitud = 0;
            Flota _flotaCargada;

            if (jugador == 1)
            {
                flotas_estrategia1 = new List <Flota>();
                tablero1           = new int[64, 64];
            }
            else
            {
                flotas_estrategia2 = new List <Flota>();
                tablero2           = new int[64, 64];
            }
            while (_barcos <= cant_barcosxtipo)
            {
                _longitud = long_max_barco;
                while (_longitud >= long_min_barco)
                {
                    List <Coordenada> coordenadas = posicionarFlota(_longitud, jugador);
                    string            nombreflota = obtenerNombre(_longitud);
                    Color             colorflota  = obtenerColor(_longitud);
                    _flotaCargada = new Flota(_longitud, nombreflota, coordenadas, colorflota);
                    if (jugador == 1)
                    {
                        flotas_estrategia1.Add(_flotaCargada);
                    }
                    else
                    {
                        flotas_estrategia2.Add(_flotaCargada);
                    }
                    _longitud--;
                }
                _barcos++;
            }
            if (jugador == 1)
            {
                generadorEstrategia1 = new CongruencialMixto(seed, a1, c1, m1);
                //generadorEstrategia1 = new AleatorioSistema();
                distrEstrategias = new DistribucionUniforme(0, 63, generadorEstrategia1);
                //distrEstrategias = new DistribucionNormal(32, 16, generadorEstrategia1);
                //distrEstrategias = new DistribucionExponencialNegativa((0.03125), generadorEstrategia1);
                estrategia_j1 = new EstrategiaEquipo1(flotas_estrategia1, distrEstrategias);
            }
            else
            {
                generadorEstrategia2 = new CongruencialMixto(seed, a2, c2, m2);
                //generadorEstrategia2 = new AleatorioSistema();
                distrEstrategias = new DistribucionUniforme(0, 63, generadorEstrategia2);
                //distrEstrategias = new DistribucionNormal(32, 16, generadorEstrategia2);
                //distrEstrategias = new DistribucionExponencialNegativa((0.03125), generadorEstrategia2);
                estrategia_j2 = new EstrategiaEquipo2(flotas_estrategia2, distrEstrategias);
            }
        }
 public DistribucionUniforme(double a, double b, IGeneradores generador)
 {
     if (b <= a)
     {
         throw new NotSupportedException("El valor de A debe ser menor que B!");
     }
     _a         = a;
     _b         = b;
     _generator = generador;
 }
 public DistribucionNormal(double media, double varianza, IGeneradores generador)
 {
     if (varianza < 0)
     {
         throw new NotSupportedException("El valor de la varianza no puede ser negativo!");
     }
     _media     = media;
     _varianza  = varianza;
     _generator = generador;
 }
 public DistribucionNormal(double media, double varianza)
 {
     if (varianza < 0)
     {
         throw new NotSupportedException("El valor de la varianza no puede ser negativo!");
     }
     _media     = media;
     _varianza  = varianza;
     _generator = new AleatorioSistema();
 }
 public DistribucionUniforme(double a, double b)
 {
     if (b <= a)
     {
         throw new NotSupportedException("El valor de A debe ser menor que B!");
     }
     _a         = a;
     _b         = b;
     _generator = new AleatorioSistema();
 }
Пример #9
0
        public int obtenerSentido()
        {
            int retorno = 0;

            if (generadorSentidos == null)
            {
                generadorSentidos    = new CongruencialMixto(seed, a, c, m);
                distribucionSentidos = new DistribucionUniforme(1, 4, generadorSentidos);
            }
            retorno = Convert.ToInt32(distribucionSentidos.generar());
            return(retorno);
        }
Пример #10
0
        // para posicionar el barco.
        public Coordenada obtenerCoordenada()
        {
            if (generadorCoordenadas == null)
            {
                generadorCoordenadas    = new CongruencialMixto(seed, a, c, m);
                distribucionCoordenadas = new DistribucionUniforme(0, 63, generadorCoordenadas);
            }
            int        _x    = (int)Math.Round(distribucionCoordenadas.generar(), 0);
            int        _y    = (int)Math.Round(distribucionCoordenadas.generar(), 0);
            Coordenada coord = new Coordenada(_x, _y);

            return(coord);
        }
 public void asignarGenerador(IGeneradores generador)
 {
     _generator = generador;
 }