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);
        }
Exemplo n.º 5
0
        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;
                }
            }
        }