Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }