private Inning PlayInning(TeamData data) { var scenarios = GetBatScenarios(); Random random = new Random(DateTime.Now.Millisecond); Inning inning = new Inning(); while (inning.IsActive && inning.Carreras < 9) { double r = random.NextDouble(); string accion; if (inning.HaveRunners) { accion = data.RangoA.FirstOrDefault(d => d.EnRango(r)).Accion; } else { accion = data.RangoB.FirstOrDefault(d => d.EnRango(r)).Accion; } var scenario = scenarios[accion]; inning = inning.AddPlate(); inning = inning.Out(scenario.Outs); inning = inning.Move(scenario.Moves); simulaciones.Add(new BatsResult(scenario.Name, data.Nombre)); } while (inning.IsActive) { inning = inning.Out(1); } return(inning); }
public static Inning OneRun(bool isWinner) { var ini = new Inning(); if (isWinner) { ini = ini.Move(4); } for (int i = 0; i < 3; i++) { ini = ini.Out(); } return(ini); }