示例#1
0
        public static Game PlayGame(Team homeTeam, Team awayTeam, RoundType roundType, bool giveHammerAdvantageToTeamWithBetterRecord = false)
        {
            var homeTeamLsd = DrawToTheButton(homeTeam, roundType);
            var awayTeamLsd = DrawToTheButton(awayTeam, roundType);

            bool homeHasHammer = GetHomeHasHammer(homeTeam, awayTeam, homeTeamLsd, awayTeamLsd, giveHammerAdvantageToTeamWithBetterRecord);

            double probabilityHomeBeatsAway = GetProbabilityOfHomeBeatingAway(homeTeam, awayTeam, homeHasHammer);
            var    random = new Random();


            if (random.NextDouble() < probabilityHomeBeatsAway)
            {
                if (roundType == RoundType.Qualifying)
                {
                    homeTeam.QualifyingRoundRecord.AddWin();
                    awayTeam.QualifyingRoundRecord.AddLoss();
                }
                if (roundType != RoundType.Playoff)
                {
                    homeTeam.RoundRobinRecord.AddWin();
                    awayTeam.RoundRobinRecord.AddLoss();
                }
                return(new Game()
                {
                    WinningTeam = homeTeam,
                    LosingTeam = awayTeam,
                    HomeTeam = homeTeam,
                    AwayTeam = awayTeam,
                    HomeTeamLsd = homeTeamLsd,
                    AwayTeamLsd = awayTeamLsd,
                    HomeTeamWon = true,
                    AwayTeamWon = false,
                    HomeHammer = homeHasHammer,
                    AwayHammer = !homeHasHammer
                });
            }
            else
            {
                if (roundType == RoundType.Qualifying)
                {
                    homeTeam.QualifyingRoundRecord.AddLoss();
                    awayTeam.QualifyingRoundRecord.AddWin();
                }
                if (roundType != RoundType.Playoff)
                {
                    homeTeam.RoundRobinRecord.AddLoss();
                    awayTeam.RoundRobinRecord.AddWin();
                }
                return(new Game()
                {
                    WinningTeam = awayTeam,
                    LosingTeam = homeTeam,
                    HomeTeam = homeTeam,
                    AwayTeam = awayTeam,
                    HomeTeamLsd = homeTeamLsd,
                    AwayTeamLsd = awayTeamLsd,
                    HomeTeamWon = false,
                    AwayTeamWon = true,
                    HomeHammer = homeHasHammer,
                    AwayHammer = !homeHasHammer
                });
            }
        }