private void BroadcastGame(Game game)
        {
            var teams = game.Identifier.Split(new string[]{"vs"}, StringSplitOptions.RemoveEmptyEntries);

            foreach (var team in teams)
            {
                Clients.Group(team).updateGame(game);
            }
            //Clients.All.updateGame(game);
        }
        private void PerformAction(Game game)
        {
            var random = new Random();
            var isHit = random.NextDouble() > 0.51;

            if (isHit)
            {
                var typePos = random.Next(0, _hitTypes.Length);
                var startPoint = 0;
                if (typePos == 3)
                    startPoint = 6;
                var locationPos = random.Next(startPoint, _positions.Length);

                game.Hit(_hitTypes[typePos], _positions[locationPos]);
            }
            else
            {
                var typePos = random.Next(0, _outTypes.Length);
                var startPos = 0;
                var endPos = _positions.Length;
                if (typePos == 0 || typePos == 1)
                {
                    endPos = 6;
                }
                else
                {
                    startPos = 6;
                }
                var locationPos = random.Next(startPos, endPos);

                game.Out(_outTypes[typePos], _positions[locationPos]);
            }
        }
        private bool TryUpdateGame(Game game)
        {
            var r = _updateOrNotRandom.NextDouble();
            if (r > 0.1)
                return false;

            if (game.CurrentAtBat.IsComplete)
            {
                game.CurrentAtBat.Reset();
                return true;
            }

            var random = new Random();
            var eventValue = random.NextDouble();

            if (eventValue > 0.66)
                game.Strike();
            else if (eventValue > 0.33)
                game.Strike();
            else
                PerformAction(game);

            return true;
        }