public void GameTest2() { var input = @"Player 1:|9|2|6|3|1||Player 2:|5|8|4|7|10".Replace("|", Environment.NewLine); var(player1, player2) = DeckParser.Parse(input); var game = new Game(new List <Player> { player1, player2 }); while (!game.Complete()) { game.PlayRound(); } Assert.Equal(3, player2.Deck.Cards.Pop()); Assert.Equal(2, player2.Deck.Cards.Pop()); Assert.Equal(10, player2.Deck.Cards.Pop()); Assert.Equal(6, player2.Deck.Cards.Pop()); Assert.Equal(8, player2.Deck.Cards.Pop()); Assert.Equal(5, player2.Deck.Cards.Pop()); Assert.Equal(9, player2.Deck.Cards.Pop()); Assert.Equal(4, player2.Deck.Cards.Pop()); Assert.Equal(7, player2.Deck.Cards.Pop()); Assert.Equal(1, player2.Deck.Cards.Pop()); }
public void DeckParserLoadsSingleInput() { var fileName = "Zoo Warlock"; var sut = new DeckParser(); sut.LoadInput(fileName); sut.DisplayCode(fileName); Assert.IsTrue(fileName.Length > 0); }
public void ScoreCalcTest() { var input = @"Player 1:|9|2|6|3|1||Player 2:|5|8|4|7|10".Replace("|", Environment.NewLine); var(player1, player2) = DeckParser.Parse(input); var game = new Game(new List <Player> { player1, player2 }); while (!game.Complete()) { game.PlayRound(); } Assert.Equal(306, player2.CalculateScore()); }
public void Puzzle1() { var input = new FileReader() .GetResource("AdventOfCode2020.Tests.Day22.PuzzleInput.txt"); var(player1, player2) = DeckParser.Parse(input); var game = new Game(new List <Player> { player1, player2 }); while (!game.Complete()) { game.PlayRound(); } Assert.Equal(35005, player1.CalculateScore()); Assert.Equal(0, player2.CalculateScore()); }
public void PlayerParser() { var input = @"Player 1:|9|2|6|3|1||Player 2:|5|8|4|7|10".Replace("|", Environment.NewLine); var(player1, player2) = DeckParser.Parse(input); Assert.Equal(9, player1.Deck.Cards.Pop()); Assert.Equal(2, player1.Deck.Cards.Pop()); Assert.Equal(6, player1.Deck.Cards.Pop()); Assert.Equal(3, player1.Deck.Cards.Pop()); Assert.Equal(1, player1.Deck.Cards.Pop()); Assert.Equal(5, player2.Deck.Cards.Pop()); Assert.Equal(8, player2.Deck.Cards.Pop()); Assert.Equal(4, player2.Deck.Cards.Pop()); Assert.Equal(7, player2.Deck.Cards.Pop()); Assert.Equal(10, player2.Deck.Cards.Pop()); }
public void Puzzle2() { var input = new FileReader() .GetResource("AdventOfCode2020.Tests.Day22.PuzzleInput.txt"); var(player1, player2) = DeckParser.Parse(input); var game = new RecursiveCombat(new List <Player> { player1, player2 }); while (!game.Complete()) { game.PlayRound(); } Assert.Equal(1800, game.Rounds); Assert.Equal(9833, game.GetWinner().CalculateScore()); }
public void DeckParserCodesNames() { var filesIn = new List <string>(); DirectoryInfo d = new DirectoryInfo( path: @"d:\temp\decks"); FileInfo[] Files = d.GetFiles("*.txt"); foreach (FileInfo file in Files) { filesIn.Add( Path.GetFileNameWithoutExtension(file.Name)); } var sut = new DeckParser(); foreach (var item in filesIn) { sut.LoadLine(item); } }
public void DeckParserLoadsMany() { var filesIn = new List <string>(); DirectoryInfo d = new DirectoryInfo( path: @"d:\temp\decks"); FileInfo[] Files = d.GetFiles("*.txt"); foreach (FileInfo file in Files) { filesIn.Add( Path.GetFileNameWithoutExtension(file.Name)); } var sut = new DeckParser(); sut.AddCode("#region Decks"); foreach (var item in filesIn) { sut.LoadInput(item); sut.DisplayCode(item); } Console.WriteLine($"#endregion"); }
public void TestInfiniteGame() { var input = @"Player 1:|43|19||Player 2:|2|29|14".Replace("|", Environment.NewLine); var(player1, player2) = DeckParser.Parse(input); var game = new RecursiveCombat(new List <Player> { player1, player2 }); while (!game.Complete()) { game.PlayRound(); } Assert.Equal(78, player2.CalculateScore()); }