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 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; }
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; }
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(); }
// 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); }
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); }