static void Execute(string filePath) { var lines = File.ReadAllLines(filePath); var rankEngine = new RankEngine(); List <Card> playerOneCards; List <Card> playerTwoCards; int playerOneHandCount = 0; int playerTwoHandCount = 0; for (int index = 0; index < lines.Count(); index++) { var playerCards = Common.ConvertInputToPlayerCards(lines[index]); playerCards = playerCards.Where(card => card != null); if (playerCards.Count() != 10) { continue; } playerOneCards = playerCards.Take(5).ToList(); playerTwoCards = playerCards.Skip(5).Take(5).ToList(); var playerOneRank = rankEngine.CalculateRank(playerOneCards); var playerTwoRank = rankEngine.CalculateRank(playerTwoCards); if (playerOneRank == playerTwoRank) { playerOneRank += rankEngine.CalculateRankOnTie(playerOneCards, playerTwoCards, playerOneRank); playerTwoRank += rankEngine.CalculateRankOnTie(playerTwoCards, playerOneCards, playerTwoRank); } if (playerOneRank > playerTwoRank) { playerOneHandCount++; } else { playerTwoHandCount++; } } Console.WriteLine($"Player 1: {playerOneHandCount}"); Console.WriteLine($"Player 2: {playerTwoHandCount}"); }
public void CalculateRightRank() { var A = new Programmer("A"); var B = new Programmer("B"); var C = new Programmer("C"); var D = new Programmer("D"); B.Recommendations.Add(A); C.Recommendations.Add(A); A.Recommendations.Add(C); B.Recommendations.Add(C); D.Recommendations.Add(C); var network = new List<Programmer> { A,B,C,D }; var rankEngine = new RankEngine(); rankEngine.CalculateRank(network); Assert.That(network.Single(x=>x.Name=="D").Rank,Is.EqualTo(0.15)); }
public void CalculateRightRank() { var A = new Programmer("A"); var B = new Programmer("B"); var C = new Programmer("C"); var D = new Programmer("D"); B.Recommendations.Add(A); C.Recommendations.Add(A); A.Recommendations.Add(C); B.Recommendations.Add(C); D.Recommendations.Add(C); var network = new List <Programmer> { A, B, C, D }; var rankEngine = new RankEngine(); rankEngine.CalculateRank(network); Assert.That(network.Single(x => x.Name == "D").Rank, Is.EqualTo(0.15)); }