public void PoorManMemoizingPegsSolutionResolveWith111x111Test() { // Arrange var pegBoard = PegBoard.FromSource(new TestBoardSource(111, 111, 33, null)); var pegsBoardIterator = PoorManMemoizingPegsSolution.Create(pegBoard); // Act pegsBoardIterator.Resolve(); var actual = pegsBoardIterator.GetBestPositions(); // Assert Assert.IsNotNull(actual); Assert.IsTrue(actual.ElementAt(0).Probability <= 1); }
public void PoorManMemoizingPegsSolutionResolveTest() { // Arrange var pegBoard = PegBoard.FromSource(TestBoardSource.CreateDefault()); var pegsBoardIterator = PoorManMemoizingPegsSolution.Create(pegBoard); // Act pegsBoardIterator.Resolve(); var actual = pegsBoardIterator.GetBestPositions(); // Assert Assert.IsNotNull(actual); Assert.AreEqual(Peg.Create(1, 1), actual.ElementAt(0)); Assert.AreEqual(0.625, actual.ElementAt(0).Probability); }
public void PoorManMemoizingPegsSolutionResolveWith7x7Test() { // Arrange var pegBoard = PegBoard.FromSource(new TestBoardSource(7, 7, 1, new[] { Peg.CreateMissingPeg(1, 1), Peg.CreateMissingPeg(2, 1), Peg.CreateMissingPeg(3, 2), })); var pegsBoardIterator = PoorManMemoizingPegsSolution.Create(pegBoard); // Act pegsBoardIterator.Resolve(); var actual = pegsBoardIterator.GetBestPositions(); // Assert Assert.IsNotNull(actual); Assert.IsTrue(actual.ElementAt(0).Probability <= 1); }
public void PoorManMemoizingPegsSolutionResolveWithFreefallSolutionTest() { // Arrange var pegBoard = PegBoard.FromSource(new TestBoardSource(5, 5, 1, new[] { Peg.CreateMissingPeg(1, 1), Peg.CreateMissingPeg(2, 1), Peg.CreateMissingPeg(3, 1), })); var pegsBoardIterator = PoorManMemoizingPegsSolution.Create(pegBoard); // Act pegsBoardIterator.Resolve(); var actual = pegsBoardIterator.GetBestPositions(); // Assert Assert.IsNotNull(actual); Assert.AreEqual(Peg.Create(1, 3), actual.ElementAt(0)); Assert.AreEqual(1, actual.ElementAt(0).Probability); }
private static void StartGame() { while (true) { var filePath = ReadFilePath(); var pegBoard = PegBoard.FromSource( PegBoardFileSource.ParseFile(filePath) ); var pegsBoardSolution = PoorManMemoizingPegsSolution.Create(pegBoard); pegsBoardSolution.Resolve(); PrintSolution(pegBoard, pegsBoardSolution.GetBestPositions()); Console.WriteLine("Would you like to play one more time? yes/no"); var answer = Console.ReadLine(); if (answer == "no" || answer == "n") { break; } } }