public void OnGet() { var gameRunner = new GameRunner(); gameRunner.AddBot(new RockOnlyBot("Rocky")); gameRunner.AddBot(new PaperOnlyBot("Paper")); gameRunner.AddBot(new ScissorsOnlyBot("Sharpy")); gameRunner.AddBot(new WaterOnlyBot("All Washed Up")); BotRankings = gameRunner.StartAllMatches().OrderByDescending(x => x.Wins).ToList(); }
public void OnPost() { List <Competitor> competitors = _db.Competitors.ToList(); if (!competitors.Any()) { competitors = GetDefaultCompetitors(); _db.Competitors.AddRange(competitors); _db.SaveChanges(); } var gameRunner = new GameRunner(); foreach (var competitor in competitors) { BaseBot bot = CreateBotFromCompetitor(competitor); gameRunner.AddBot(bot); } GameRunnerResult gameRunnerResult = gameRunner.StartAllMatches(); SaveResults(gameRunnerResult); BotRankings = gameRunnerResult.GameRecord.BotRecords.OrderByDescending(x => x.Wins).ToList(); AllFullResults = gameRunnerResult.AllMatchResults.OrderBy(x => x.Competitor.Name).ToList(); }
public void ReturnOneBot_GivenOneBotCompeting() { var gameRunner = new GameRunner(); gameRunner.AddBot(new RockOnlyBot()); var result = gameRunner.StartAllMatches(); result.GameRecord.BotRecords.Should().ContainSingle(); }
public async Task OnPostAsync() { List <Competitor> competitors = db.Competitors.ToList(); if (!competitors.Any()) { competitors = GetDefaultCompetitors(); db.Competitors.AddRange(competitors); db.SaveChanges(); } var gameRunner = new GameRunner(metrics); foreach (var competitor in competitors) { BaseBot bot = CreateBotFromCompetitor(competitor); gameRunner.AddBot(bot); } var stopwatch = System.Diagnostics.Stopwatch.StartNew(); GameRunnerResult gameRunnerResult = gameRunner.StartAllMatches(); stopwatch.Stop(); var metric = new Dictionary <string, double> { { "GameLength", stopwatch.Elapsed.TotalMilliseconds } }; // Set up some properties: var properties = new Dictionary <string, string> { { "Source", configuration["P20HackFestTeamName"] } }; // Send the event: metrics.TrackEventDuration("GameRun", properties, metric); SaveResults(gameRunnerResult); BotRankings = gameRunnerResult.GameRecord.BotRecords.OrderByDescending(x => x.Wins).ToList(); AllFullResults = gameRunnerResult.AllMatchResults.OrderBy(x => x.Competitor.Name).ToList(); //Get 20 Last GamesForTable = db.GameRecords.OrderByDescending(g => g.GameDate).Take(20).Include(g => g.BotRecords).ToList(); if (bool.Parse(configuration["EventGridOn"])) { await PublishMessage(BotRankings.First().GameRecord.Id.ToString(), BotRankings.First().Competitor.Name); } }
public async Task <string> PostAsync() { List <Competitor> competitors = db.Competitors.ToList(); var gameRunner = new GameRunner(metrics); foreach (var competitor in competitors) { BaseBot bot = CreateBotFromCompetitor(competitor); gameRunner.AddBot(bot); } var stopwatch = System.Diagnostics.Stopwatch.StartNew(); GameRunnerResult gameRunnerResult = gameRunner.StartAllMatches(); stopwatch.Stop(); var metric = new Dictionary <string, double> { { "GameLength", stopwatch.Elapsed.TotalMilliseconds } }; // Set up some properties: var properties = new Dictionary <string, string> { { "Source", configuration["P20HackFestTeamName"] } }; // Send the event: metrics.TrackEventDuration("GameRun", properties, metric); SaveResults(gameRunnerResult); var winner = gameRunnerResult.AllMatchResults.Select(x => x.MatchResults).First().First().Player1.Name; await PublishMessage(gameRunnerResult.GameRecord.Id.ToString(), winner); //return gameRunnerResult.AllMatchResults.Select(x => x.MatchResults).First().First().Player1.Name; var bestRecord = gameRunnerResult.GameRecord.BotRecords.OrderByDescending(x => x.Wins).First(); return($"{bestRecord.Competitor.Name}:{bestRecord.Wins}-{bestRecord.Losses}"); }