Esempio n. 1
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);
            }
        }
Esempio n. 2
0
 public EstrategiaAleatoria(List <Flota> _list_barcos, IDistribuciones _distrib)
 {
     cant_movimientos     = 0;
     cant_agua            = 0;
     flotas               = _list_barcos;
     cant_barcos_hundidos = 0;
     cant_aciertos        = 0;
     cant_repetidos       = 0;
     distribucion         = _distrib;
 }
Esempio n. 3
0
 public EstrategiaEquipo2(List <Flota> _list_barcos, IDistribuciones _distrib)
 {
     cant_movimientos     = 0;
     cant_movimientos     = 0;
     cant_agua            = 0;
     flotas               = _list_barcos;
     cant_barcos_hundidos = 0;
     cant_aciertos        = 0;
     cant_repetidos       = 0;
     distribucion         = _distrib;
     posicionLista        = -1;
 }
Esempio n. 4
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);
        }
 public EstrategiaEquipo1(List <Flota> _list_barcos, IDistribuciones _distrib)
 {
     cant_movimientos               = 0;
     cant_agua                      = 0;
     flotas                         = _list_barcos;
     cant_barcos_hundidos           = 0;
     cant_aciertos                  = 0;
     cant_repetidos                 = 0;
     distribucion                   = _distrib;
     ultimo_desplazamiento          = 0;
     ultimo_desplazamiento_acertado = 0;
     origen                         = new Coordenada(0, 0);
 }
 public PruebaChiCuadrado(IDistribuciones distribucion, int tamañoMuestra, int cantidadIntervalos, string alfa)
 {
     _distribucion       = distribucion;
     _nTamañoMuestra     = tamañoMuestra;
     _cantidadIntervalos = cantidadIntervalos;
     _alfa = alfa;
     CalcularValores();
     CalcularIntervalos();
     CalcularFrecuenciasObservadas();
     ObtenerFrecuenciasEsperadas();
     CalcularValoresChiCuadrado();
     ObtenerValorDeTablaChiCuadrado();
 }
Esempio n. 7
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);
        }
Esempio n. 8
0
        private void generarDistribucion()
        {
            if (rad_uniforme.Checked)
            {
                var a = double.Parse(txt_a.Text);
                var b = double.Parse(txt_b.Text);
                _distribucion = new DistribucionUniforme(a, b, _generadorAleatorio);
            }

            if (rad_normal.Checked)
            {
                var media    = double.Parse(txt_media.Text);
                var varianza = double.Parse(txt_varianza.Text);
                _distribucion = new DistribucionNormal(media, varianza, _generadorAleatorio);
            }

            if (rad_exponencial.Checked)
            {
                var lambda = double.Parse(txt_lambda.Text);
                _distribucion = new DistribucionExponencialNegativa(lambda, _generadorAleatorio);
            }

            var tamañoMuestra      = int.Parse(txt_cant_nroC.Text);
            var cantidadIntervalos = int.Parse(txt_IntC.Text);
            var alfa = txt_chicierto.Text;

            try
            {
                _pruebaChiCuadrado = new PruebaChiCuadrado(_distribucion, tamañoMuestra, cantidadIntervalos, alfa);
            }
            catch (Exception)
            {
                var grados = int.Parse(txt_IntC.Text) - _distribucion.getCantidadParametros() - 1;

                MessageBox.Show(grados <= 0
                    ? @"Grados de libertad insuficientes, utilice más intervalos"
                    : @"Falla la prueba de Chi Cuadrado porque las frecuencias esperadas tienden a cero, utilice menos intervalos");

                txt_mA.Focus();
                return;
            }
            for (var i = 0; i < tamañoMuestra; i++)
            {
                var valor = _pruebaChiCuadrado._valores[i];
                dataGridView1.Rows.Add(i + 1, valor);
            }
            CompletarTabla(3);
        }