public void Part1GamePlayWorksOnExample() { var(player1, player2) = CrabCombat.LoadGame("example1.txt"); var(result1, result2) = CrabCombat.PlayGame(player1, player2); result1.ShouldBeEmpty(); result2.ShouldBe(new List <int> { 3, 2, 10, 6, 8, 5, 9, 4, 7, 1 }); }
public void Part2GamePlayWorksOnExample() { var(player1, player2) = CrabCombat.LoadGame("example1.txt"); var(result1, result2) = CrabCombat.PlayRecursiveGame(player1, player2); result1.ShouldBeEmpty(); result2.ShouldBe(new List <int> { 7, 5, 6, 2, 4, 1, 10, 8, 9, 3 }); }
public void Part1GamePlayWorksOnRealInput() { var(player1, player2) = CrabCombat.LoadGame("input.txt"); var(result1, result2) = CrabCombat.PlayGame(player1, player2); result1.ShouldBeEmpty(); result2.ShouldBe(new List <int> { 47, 30, 43, 22, 44, 31, 32, 17, 36, 24, 27, 9, 5, 2, 50, 37, 39, 21, 45, 15, 11, 1, 49, 41, 26, 14, 46, 38, 25, 7, 48, 12, 23, 6, 34, 33, 16, 3, 42, 29, 40, 19, 35, 28, 20, 10, 18, 8, 13, 4 }); }
public void ParserWorksOnExample() { var(player1, player2) = CrabCombat.LoadGame("example1.txt"); player1.ShouldBe(new List <int> { 9, 2, 6, 3, 1 }); player2.ShouldBe(new List <int> { 5, 8, 4, 7, 10 }); }
public void Example_2() { var cc = new CrabCombat { P1 = new Queue <int>(new [] { 9, 2, 6, 3, 1 }), P2 = new Queue <int>(new [] { 5, 8, 4, 7, 10 }) }; cc.BattleRecursive(cc.P1, cc.P2); Assert.Equal(0, cc.P1Score); Assert.Equal(291, cc.P2Score); }
public void Example_3() { var cc = new CrabCombat { P1 = new Queue <int>(new [] { 43, 19 }), P2 = new Queue <int>(new [] { 2, 29, 14 }) }; cc.BattleRecursive(cc.P1, cc.P2); Assert.Equal(105, cc.P1Score); Assert.Equal(0, cc.P2Score); }
public override string First() { string filename = GetFilename(); List <string> input = System.IO.File.ReadAllLines(filename).ToList(); PRINT = false; CrabCombat game = new CrabCombat(input); game.PlayGame(); var result = game.Score(); return(result.ToString()); }
public void Player_1_should_win_if_decks_reoccur() { var player1 = new List <int> { 43, 19 }; var player2 = new List <int> { 2, 29, 14 }; var _crabCombat = new CrabCombat(player1, player2); _crabCombat.playGame2(); Assert.Equal(2, _crabCombat.Player1.Count); Assert.Equal(3, _crabCombat.Player2.Count); }
public void Example_1() { var cc = new CrabCombat { P1 = new Queue <int>(new [] { 9, 2, 6, 3, 1 }), P2 = new Queue <int>(new [] { 5, 8, 4, 7, 10 }) }; cc.Battle(); Assert.Equal(29, cc.RoundsPlayed); Assert.Equal(0, cc.P1Score); Assert.Equal(306, cc.P2Score); }
public void Puzzle_22A() { var cc = new CrabCombat { P1 = new Queue <int>(PuzzleP1), P2 = new Queue <int>(PuzzleP2) }; cc.Battle(); Assert.Equal(687, cc.RoundsPlayed); Assert.Equal(33098, cc.P1Score); Assert.Equal(0, cc.P2Score); }
public void Should_play_a_round() { var player1 = new List <int> { 9 }; var player2 = new List <int> { 5 }; var _crabCombat = new CrabCombat(player1, player2); _crabCombat.playRoundGame1(); Assert.Equal(2, _crabCombat.Player1.Count); Assert.Empty(_crabCombat.Player2); }
public void Should_play_game2_until_deck_empty() { var player1 = new List <int> { 9, 2, 6, 3, 1 }; var player2 = new List <int> { 5, 8, 4, 7, 10 }; var _crabCombat = new CrabCombat(player1, player2); _crabCombat.playGame2(); Assert.Equal(10, _crabCombat.Player2.Count); Assert.Empty(_crabCombat.Player1); }
public override bool Test() { string filename = GetTestFilename(); List <string> input = System.IO.File.ReadAllLines(filename).ToList(); PRINT = false; CrabCombat game = new CrabCombat(input); game.PlayGame(); var result = game.Score(); bool testSucceeded = result == 306; return(testSucceeded); }
public void Should_calculate_winners_score_for_game_2() { var player1 = new List <int> { 9, 2, 6, 3, 1 }; var player2 = new List <int> { 5, 8, 4, 7, 10 }; var _crabCombat = new CrabCombat(player1, player2); _crabCombat.playGame2(); var score = _crabCombat.calculateScore(_crabCombat.GameWinner); Assert.Equal(291, score); }
public void Puzzle_22B() { var cc = new CrabCombat { P1 = new Queue <int>(PuzzleP1), P2 = new Queue <int>(PuzzleP2) }; cc.BattleRecursive(cc.P1, cc.P2); Assert.True(cc.P1Score > 11908, "too low"); Assert.True(cc.P1Score > 15110, "too low"); Assert.Equal(35055, cc.P1Score); Assert.Equal(0, cc.P2Score); }
public void ScoreCalculatorWorksOnExample() { var(player1, player2) = CrabCombat.LoadGame("example1.txt"); var(result1, result2) = CrabCombat.PlayGame(player1, player2); CrabCombat.CalculateScore(result2).ShouldBe(306); }
public void ScoreCalculatorWorksOnRealInput() { var(player1, player2) = CrabCombat.LoadGame("input.txt"); var(result1, result2) = CrabCombat.PlayGame(player1, player2); CrabCombat.CalculateScore(result2).ShouldBe(35397); }
static void Main() { var day22 = new CrabCombat(); Console.WriteLine(day22.problem1()); Console.WriteLine(day22.problem2()); //var day10 = new AdapterArray(); //Console.WriteLine(day10.problem1()); //Console.WriteLine(day10.problem2()); //var day9 = new EncodingError(); //var day9Problem1 = day9.problem1(); //Console.WriteLine(day9Problem1); //var day9Problem2 = day9.problem2(); //Console.WriteLine(day9Problem2); //var day8 = new HandheldHalting(); //var day8Problem1 = day8.problem1(); //Console.WriteLine(day8Problem1); //var day8Problem2 = day8.problem2(); //Console.WriteLine(day8Problem2); //var day7 = new HandyHaversacks(); //var day7Problem1 = day7.problem1(); //Console.WriteLine(day7Problem1); //var day6 = new CustomCustoms(); //var day6Problem1 = day6.problem1(); //Console.WriteLine(day6Problem1); //var day6Problem2 = day6.problem2(); //Console.WriteLine(day6Problem2); //var day5 = new BinaryBoarding(); //var day5Problem1 = day5.problem1(); //Console.WriteLine(day5Problem1); //var day5Problem2 = day5.problem2(); //Console.WriteLine(day5Problem2); //var day4 = new PassportProcessing(); //var day4Problem1 = day4.problem1(); //Console.WriteLine(day4Problem1); //var day4Problem2 = day4.problem2(); //Console.WriteLine(day4Problem2); //var day3 = new TobogganTrajectory(); //var day3Problem1 = day3.Problem1(); //Console.WriteLine(day3Problem1); //var day3Problem2 = day3.Problem2(); //Console.WriteLine(day3Problem2); //var day2 = new PasswordChecker(); //var day2Problem1 = day2.checkLotsOfPasswords("first"); //Console.WriteLine(day2Problem1); //var day2Problem2 = day2.checkLotsOfPasswords("second"); //Console.WriteLine(day2Problem2); //var day1 = new ReportRepair(); //var day1Problem1 = day1.Problem1(); //Console.WriteLine(day1Problem1); //var day1Problem2 = day1.Problem2(); //Console.WriteLine(day1Problem2); }