private void ResimularBatalla(object sender, EventArgs e) { int victorias = 0; int empates = 0; int derrotas = 0; int restantesAtacante = 0; int restantesDefensor = 0; for (int contador = 0; contador < 100; contador++) { Batalla resultadoBatalla = Batalla.SimularBatalla((int)numericUpDownEx1.Value, (int)numericUpDownEx4.Value, (int)numericUpDownEx2.Value, (int)numericUpDownEx3.Value); if (resultadoBatalla.Resultado == Batalla.ResultadoBatalla.GanaAtacante) { victorias++; } else if (resultadoBatalla.Resultado == Batalla.ResultadoBatalla.GanaDefensor) { derrotas++; } else//Empate { empates++; } restantesAtacante += resultadoBatalla.RestanteAtacante; restantesDefensor += resultadoBatalla.RestanteDefensor; } if (victorias > derrotas && victorias > empates) { label6.Text = "Gana el atacante\r\nNaves restantes: " + Math.Round(restantesAtacante / 100d); } else if (derrotas > victorias && derrotas > empates) { label6.Text = "Gana el defensor\r\nNaves restantes: " + Math.Round(restantesDefensor / 100d); } else//Empate { label6.Text = "Empate\r\nNaves restantes del atacante: " + Math.Round(restantesAtacante / 100d) + "\r\nNaves restantes del defensor: " + Math.Round(restantesDefensor / 100d); } label6.Text += "\r\n\r\n" + victorias + "% de victorias." + "\r\n" + derrotas + "% de derrotas." + "\r\n" + empates + "% de empates."; }
private void ResultadoBatalla(Cliente jugador, Flota flota) { Batalla res = Batalla.SimularBatalla(flota.Naves, flota.TecnologiaMilitar, flota.Destino.Naves, flota.Destino.TecnologiaMilitar); DifundirMensaje(71, string.Format( "La batalla en el planeta '{0}' entre '{1}' y '{2}' ha terminado en '{3}'. Naves iniciales del atacante: '{4}'. Naves iniciales del defensor: '{5}'. Naves restantes del atacante: '{6}'. Naves restantes del defensor: '{7}'.", flota.Destino.Name, jugador.Nombre, flota.Destino.Dueño == null ? string.Empty : flota.Destino.Dueño.Nombre, (int)res.Resultado, flota.Naves, flota.Destino.Naves, res.RestanteAtacante, res.RestanteDefensor)); if (res.Resultado == Batalla.ResultadoBatalla.Empate) { flota.Destino.Naves = res.RestanteDefensor; //Enviar las naves restantes a casa if (res.RestanteAtacante > 0) { Flota retorno = new Flota(); retorno.Origen = flota.Destino; retorno.Destino = flota.Origen; retorno.TecnologiaMilitar = flota.TecnologiaMilitar; retorno.Naves = res.RestanteAtacante; retorno.Distancia = Cliente.CalcularDistancia(retorno.Origen, retorno.Destino); retorno.RondaSalida = ronda; retorno.RondaLlegada = (ronda + (int)Math.Round(retorno.Distancia)); jugador.Flotas.Add(retorno); } } else if (res.Resultado == Batalla.ResultadoBatalla.GanaDefensor) //Defendido { flota.Destino.Naves = res.RestanteDefensor; } else //Gana el atacante { flota.Destino.Naves = res.RestanteAtacante; flota.Destino.Dueño = jugador; } if (flota.Destino.Naves == 0) { flota.Destino.Naves = 1; } }