Example #1
0
        public void PointsOutFrom()
        {
            HashSet <Point> answer = new HashSet <Point>()
            {
                Point.Get(0, 4), Point.Get(0, 5), Point.Get(1, 4), Point.Get(2, 5), Point.Get(3, 6), Point.Get(4, 7), Point.Get(5, 8), Point.Get(1, 3), Point.Get(2, 3), Point.Get(3, 3), Point.Get(4, 3), Point.Get(5, 3), Point.Get(6, 3), Point.Get(7, 3), Point.Get(8, 3), Point.Get(0, 2), Point.Get(0, 1), Point.Get(0, 0), Point.Get(1, 2), Point.Get(2, 1),
            };
            PieceGrid           grid   = new PieceGrid(10, PieceHelpers.GetInitialAmazonPositions(10));
            IEnumerable <Point> points = grid.GetOpenPointsOutFrom(Point.Get(0, 3));

            Assert.IsTrue(points.ToSet().SetEquals(answer));
        }
Example #2
0
        public void MovesFrom()
        {
            HashSet <Move> answer = new HashSet <Move>()
            {
                new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(2, 0)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(1, 0)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(9, 1)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(8, 1)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(7, 1)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(6, 1)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(5, 1)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(4, 1)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(3, 1)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(0, 1)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(1, 1)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(9, 8)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(8, 7)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(7, 6)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(6, 5)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(5, 4)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(4, 3)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(3, 2)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(2, 9)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(2, 8)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(2, 7)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(2, 6)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(2, 5)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(2, 4)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(2, 3)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(2, 2)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(2, 1), Point.Get(1, 2)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(2, 1)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(1, 0)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(1, 1)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(0, 1)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(9, 2)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(8, 2)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(7, 2)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(6, 2)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(5, 2)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(4, 2)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(3, 2)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(2, 2)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(0, 2)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(8, 9)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(7, 8)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(6, 7)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(5, 6)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(4, 5)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(3, 4)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(2, 3)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(1, 9)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(1, 8)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(1, 7)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(1, 6)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(1, 5)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(1, 4)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(1, 3)), new Move(Point.Get(0, 3), Point.Get(1, 2), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(0, 0), Point.Get(2, 0)), new Move(Point.Get(0, 3), Point.Get(0, 0), Point.Get(1, 0)), new Move(Point.Get(0, 3), Point.Get(0, 0), Point.Get(9, 9)), new Move(Point.Get(0, 3), Point.Get(0, 0), Point.Get(8, 8)), new Move(Point.Get(0, 3), Point.Get(0, 0), Point.Get(7, 7)), new Move(Point.Get(0, 3), Point.Get(0, 0), Point.Get(6, 6)), new Move(Point.Get(0, 3), Point.Get(0, 0), Point.Get(5, 5)), new Move(Point.Get(0, 3), Point.Get(0, 0), Point.Get(4, 4)), new Move(Point.Get(0, 3), Point.Get(0, 0), Point.Get(3, 3)), new Move(Point.Get(0, 3), Point.Get(0, 0), Point.Get(2, 2)), new Move(Point.Get(0, 3), Point.Get(0, 0), Point.Get(1, 1)), new Move(Point.Get(0, 3), Point.Get(0, 0), Point.Get(0, 5)), new Move(Point.Get(0, 3), Point.Get(0, 0), Point.Get(0, 4)), new Move(Point.Get(0, 3), Point.Get(0, 0), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(0, 0), Point.Get(0, 2)), new Move(Point.Get(0, 3), Point.Get(0, 0), Point.Get(0, 1)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(1, 0)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(0, 0)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(9, 1)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(8, 1)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(7, 1)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(6, 1)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(5, 1)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(4, 1)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(3, 1)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(2, 1)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(1, 1)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(8, 9)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(7, 8)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(6, 7)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(5, 6)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(4, 5)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(3, 4)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(2, 3)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(1, 2)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(0, 5)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(0, 4)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(0, 1), Point.Get(0, 2)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(2, 0)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(1, 1)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(0, 0)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(0, 1)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(9, 2)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(8, 2)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(7, 2)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(6, 2)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(5, 2)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(4, 2)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(3, 2)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(2, 2)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(1, 2)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(7, 9)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(6, 8)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(5, 7)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(4, 6)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(3, 5)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(2, 4)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(1, 3)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(0, 5)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(0, 4)), new Move(Point.Get(0, 3), Point.Get(0, 2), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(9, 2)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(8, 0)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(8, 1)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(8, 2)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(5, 0)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(6, 1)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(7, 2)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(1, 3)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(2, 3)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(3, 3)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(4, 3)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(5, 3)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(6, 3)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(7, 3)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(9, 4)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(8, 9)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(8, 8)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(8, 7)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(8, 6)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(8, 5)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(8, 4)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(2, 9)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(3, 8)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(4, 7)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(5, 6)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(6, 5)), new Move(Point.Get(0, 3), Point.Get(8, 3), Point.Get(7, 4)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(9, 1)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(8, 2)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(7, 0)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(7, 1)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(7, 2)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(4, 0)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(5, 1)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(6, 2)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(8, 3)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(1, 3)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(2, 3)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(3, 3)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(4, 3)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(5, 3)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(6, 3)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(9, 5)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(8, 4)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(7, 9)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(7, 8)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(7, 7)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(7, 6)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(7, 5)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(7, 4)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(1, 9)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(2, 8)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(3, 7)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(4, 6)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(5, 5)), new Move(Point.Get(0, 3), Point.Get(7, 3), Point.Get(6, 4)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(9, 0)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(8, 1)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(7, 2)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(6, 1)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(6, 2)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(4, 1)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(5, 2)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(8, 3)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(7, 3)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(1, 3)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(2, 3)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(3, 3)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(4, 3)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(5, 3)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(8, 5)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(7, 4)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(6, 8)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(6, 7)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(6, 6)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(6, 5)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(6, 4)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(0, 9)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(1, 8)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(2, 7)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(3, 6)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(4, 5)), new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(5, 4)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(8, 0)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(7, 1)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(6, 2)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(5, 0)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(5, 1)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(5, 2)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(2, 0)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(3, 1)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(4, 2)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(8, 3)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(7, 3)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(6, 3)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(1, 3)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(2, 3)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(3, 3)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(4, 3)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(9, 7)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(8, 6)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(7, 5)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(6, 4)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(5, 9)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(5, 8)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(5, 7)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(5, 6)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(5, 5)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(5, 4)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(0, 8)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(1, 7)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(2, 6)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(3, 5)), new Move(Point.Get(0, 3), Point.Get(5, 3), Point.Get(4, 4)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(7, 0)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(6, 1)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(5, 2)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(4, 0)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(4, 1)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(4, 2)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(1, 0)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(2, 1)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(3, 2)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(8, 3)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(7, 3)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(6, 3)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(5, 3)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(1, 3)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(2, 3)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(3, 3)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(9, 8)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(8, 7)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(7, 6)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(6, 5)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(5, 4)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(4, 9)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(4, 8)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(4, 7)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(4, 6)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(4, 5)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(4, 4)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(0, 7)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(1, 6)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(2, 5)), new Move(Point.Get(0, 3), Point.Get(4, 3), Point.Get(3, 4)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(5, 1)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(4, 2)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(3, 1)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(3, 2)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(0, 0)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(1, 1)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(2, 2)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(8, 3)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(7, 3)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(6, 3)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(5, 3)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(4, 3)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(1, 3)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(2, 3)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(9, 9)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(8, 8)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(7, 7)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(6, 6)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(5, 5)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(4, 4)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(3, 8)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(3, 7)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(3, 6)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(3, 5)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(3, 4)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(1, 5)), new Move(Point.Get(0, 3), Point.Get(3, 3), Point.Get(2, 4)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(5, 0)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(4, 1)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(3, 2)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(2, 0)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(2, 1)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(2, 2)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(0, 1)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(1, 2)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(8, 3)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(7, 3)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(6, 3)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(5, 3)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(4, 3)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(3, 3)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(1, 3)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(8, 9)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(7, 8)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(6, 7)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(5, 6)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(4, 5)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(3, 4)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(2, 9)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(2, 8)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(2, 7)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(2, 6)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(2, 5)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(2, 4)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(0, 5)), new Move(Point.Get(0, 3), Point.Get(2, 3), Point.Get(1, 4)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(4, 0)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(3, 1)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(2, 2)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(1, 0)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(1, 1)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(1, 2)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(0, 2)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(8, 3)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(7, 3)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(6, 3)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(5, 3)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(4, 3)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(3, 3)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(2, 3)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(7, 9)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(6, 8)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(5, 7)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(4, 6)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(3, 5)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(2, 4)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(1, 9)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(1, 8)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(1, 7)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(1, 6)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(1, 5)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(1, 4)), new Move(Point.Get(0, 3), Point.Get(1, 3), Point.Get(0, 4)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(9, 4)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(8, 5)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(7, 6)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(6, 7)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(5, 0)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(5, 1)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(5, 2)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(5, 3)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(5, 4)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(5, 5)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(5, 6)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(5, 7)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(1, 4)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(2, 5)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(3, 6)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(4, 7)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(9, 8)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(8, 8)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(7, 8)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(6, 8)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(0, 8)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(1, 8)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(2, 8)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(3, 8)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(4, 8)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(5, 9)), new Move(Point.Get(0, 3), Point.Get(5, 8), Point.Get(4, 9)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(9, 2)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(8, 3)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(7, 4)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(6, 5)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(5, 6)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(4, 0)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(4, 1)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(4, 2)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(4, 3)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(4, 4)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(4, 5)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(4, 6)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(1, 4)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(2, 5)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(3, 6)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(9, 7)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(8, 7)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(7, 7)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(6, 7)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(5, 7)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(0, 7)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(1, 7)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(2, 7)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(3, 7)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(5, 8)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(4, 9)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(4, 8)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(2, 9)), new Move(Point.Get(0, 3), Point.Get(4, 7), Point.Get(3, 8)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(9, 0)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(8, 1)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(7, 2)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(6, 3)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(5, 4)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(4, 5)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(3, 1)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(3, 2)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(3, 3)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(3, 4)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(3, 5)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(1, 4)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(2, 5)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(8, 6)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(7, 6)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(6, 6)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(5, 6)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(4, 6)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(1, 6)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(2, 6)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(5, 8)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(4, 7)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(3, 8)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(3, 7)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(0, 9)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(1, 8)), new Move(Point.Get(0, 3), Point.Get(3, 6), Point.Get(2, 7)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(7, 0)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(6, 1)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(5, 2)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(4, 3)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(3, 4)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(2, 0)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(2, 1)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(2, 2)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(2, 3)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(2, 4)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(1, 4)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(9, 5)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(8, 5)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(7, 5)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(6, 5)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(5, 5)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(4, 5)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(3, 5)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(0, 5)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(1, 5)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(5, 8)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(4, 7)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(3, 6)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(2, 9)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(2, 8)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(2, 7)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(2, 6)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(0, 7)), new Move(Point.Get(0, 3), Point.Get(2, 5), Point.Get(1, 6)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(5, 0)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(4, 1)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(3, 2)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(2, 3)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(1, 0)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(1, 1)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(1, 2)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(1, 3)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(9, 4)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(8, 4)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(7, 4)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(6, 4)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(5, 4)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(4, 4)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(3, 4)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(2, 4)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(0, 4)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(5, 8)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(4, 7)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(3, 6)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(2, 5)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(1, 9)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(1, 8)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(1, 7)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(1, 6)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(1, 5)), new Move(Point.Get(0, 3), Point.Get(1, 4), Point.Get(0, 5)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(5, 0)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(4, 1)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(3, 2)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(2, 3)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(1, 4)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(0, 0)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(0, 1)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(0, 2)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(0, 4)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(9, 5)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(8, 5)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(7, 5)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(6, 5)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(5, 5)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(4, 5)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(3, 5)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(2, 5)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(1, 5)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(4, 9)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(3, 8)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(2, 7)), new Move(Point.Get(0, 3), Point.Get(0, 5), Point.Get(1, 6)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(4, 0)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(3, 1)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(2, 2)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(1, 3)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(0, 0)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(0, 1)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(0, 2)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(0, 3)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(9, 4)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(8, 4)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(7, 4)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(6, 4)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(5, 4)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(4, 4)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(3, 4)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(2, 4)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(1, 4)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(5, 9)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(4, 8)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(3, 7)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(2, 6)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(1, 5)), new Move(Point.Get(0, 3), Point.Get(0, 4), Point.Get(0, 5)),
            };
            PieceGrid          grid  = new PieceGrid(10, PieceHelpers.GetInitialAmazonPositions(10));
            IEnumerable <Move> moves = grid.GetMovesFromPoint(Point.Get(0, 3));

            //string code = GetMoveString(moves);
            Assert.IsTrue(moves.ToSet().SetEquals(answer));
        }
Example #3
0
        public void PointsOutFromArrow()
        {
            HashSet <Point> answer = new HashSet <Point>()
            {
                Point.Get(5, 1), Point.Get(4, 2), Point.Get(3, 1), Point.Get(3, 2), Point.Get(0, 0), Point.Get(1, 1), Point.Get(2, 2), Point.Get(8, 3), Point.Get(7, 3), Point.Get(6, 3), Point.Get(5, 3), Point.Get(4, 3), Point.Get(0, 3), Point.Get(1, 3), Point.Get(2, 3), Point.Get(9, 9), Point.Get(8, 8), Point.Get(7, 7), Point.Get(6, 6), Point.Get(5, 5), Point.Get(4, 4), Point.Get(3, 8), Point.Get(3, 7), Point.Get(3, 6), Point.Get(3, 5), Point.Get(3, 4), Point.Get(1, 5), Point.Get(2, 4),
            };
            PieceGrid           grid   = new PieceGrid(10, PieceHelpers.GetInitialAmazonPositions(10));
            IEnumerable <Point> points = grid.GetOpenPointsOutFrom(Point.Get(3, 3), Point.Get(0, 3));

            Assert.IsTrue(points.Contains(Point.Get(0, 3)));
            //string code = GetPointsString(points);
            Assert.IsTrue(points.ToSet().SetEquals(answer));
        }
Example #4
0
        public void PointsOutFrom2()
        {
            HashSet <Point> answer = new HashSet <Point>()
            {
                Point.Get(9, 0), Point.Get(8, 1), Point.Get(7, 2), Point.Get(6, 3), Point.Get(5, 0), Point.Get(5, 1), Point.Get(5, 2), Point.Get(5, 3), Point.Get(1, 0), Point.Get(2, 1), Point.Get(3, 2), Point.Get(4, 3), Point.Get(9, 4), Point.Get(8, 4), Point.Get(7, 4), Point.Get(6, 4), Point.Get(0, 4), Point.Get(1, 4), Point.Get(2, 4), Point.Get(3, 4), Point.Get(4, 4), Point.Get(9, 8), Point.Get(8, 7), Point.Get(7, 6), Point.Get(6, 5), Point.Get(5, 9), Point.Get(5, 8), Point.Get(5, 7), Point.Get(5, 6), Point.Get(5, 5), Point.Get(0, 9), Point.Get(1, 8), Point.Get(2, 7), Point.Get(3, 6), Point.Get(4, 5),
            };
            PieceGrid grid = new PieceGrid(10, PieceHelpers.GetInitialAmazonPositions(10));

            grid.PointPieces[Point.Get(0, 3)] = Open.Get();
            grid.PointPieces[Point.Get(5, 4)] = AmazonPlayer1.Get();
            IEnumerable <Point> points = grid.GetOpenPointsOutFrom(Point.Get(5, 4));

            Assert.IsTrue(points.ToSet().SetEquals(answer));
        }
Example #5
0
        public void PointsOutFromArrow2()
        {
            HashSet <Point> answer = new HashSet <Point>()
            {
                Point.Get(5, 0), Point.Get(4, 1), Point.Get(3, 1), Point.Get(1, 0), Point.Get(2, 1), Point.Get(9, 2), Point.Get(8, 2), Point.Get(7, 2), Point.Get(6, 2), Point.Get(5, 2), Point.Get(4, 2), Point.Get(0, 2), Point.Get(1, 2), Point.Get(2, 2), Point.Get(9, 8), Point.Get(8, 7), Point.Get(7, 6), Point.Get(6, 5), Point.Get(5, 4), Point.Get(4, 3), Point.Get(3, 8), Point.Get(3, 7), Point.Get(3, 6), Point.Get(3, 5), Point.Get(3, 4), Point.Get(3, 3), Point.Get(0, 5), Point.Get(1, 4), Point.Get(2, 3),
            };
            PieceGrid grid = new PieceGrid(10, PieceHelpers.GetInitialAmazonPositions(10));

            grid.PointPieces[Point.Get(0, 3)] = Open.Get();
            grid.PointPieces[Point.Get(5, 4)] = AmazonPlayer1.Get();
            IEnumerable <Point> points = grid.GetOpenPointsOutFrom(Point.Get(3, 2), Point.Get(5, 4));

            //string code = GetPointsString(points);
            Assert.IsTrue(points.ToSet().SetEquals(answer));
        }
Example #6
0
        public void PointsOutFrom3()
        {
            HashSet <Point> answer = new HashSet <Point>()
            {
            };
            PieceGrid grid = new PieceGrid(10, PieceHelpers.GetInitialAmazonPositions(10));

            grid.PointPieces[Point.Get(0, 4)] = ArrowPlayer1.Get();
            grid.PointPieces[Point.Get(1, 4)] = ArrowPlayer1.Get();
            grid.PointPieces[Point.Get(1, 3)] = ArrowPlayer1.Get();
            grid.PointPieces[Point.Get(1, 2)] = ArrowPlayer1.Get();
            grid.PointPieces[Point.Get(0, 2)] = ArrowPlayer1.Get();
            IEnumerable <Point> points = grid.GetOpenPointsOutFrom(Point.Get(0, 3));

            Assert.IsTrue(points.ToSet().SetEquals(answer));
        }
Example #7
0
        public void ApplyMove()
        {
            PieceGrid grid = new PieceGrid(10, PieceHelpers.GetInitialAmazonPositions(10));

            Assert.AreEqual(AmazonPlayer1.Get(), grid.PointPieces[Point.Get(0, 3)]);
            Assert.AreEqual(Open.Get(), grid.PointPieces[Point.Get(6, 3)]);
            Assert.AreEqual(Open.Get(), grid.PointPieces[Point.Get(6, 7)]);
            Assert.IsTrue(grid.Amazon1Points.Contains(Point.Get(0, 3)));
            Assert.IsFalse(grid.Amazon1Points.Contains(Point.Get(6, 3)));
            grid.ApplyMove(new Move(Point.Get(0, 3), Point.Get(6, 3), Point.Get(6, 7)));
            Assert.AreEqual(Open.Get(), grid.PointPieces[Point.Get(0, 3)]);
            Assert.AreEqual(AmazonPlayer1.Get(), grid.PointPieces[Point.Get(6, 3)]);
            Assert.AreEqual(ArrowPlayer1.Get(), grid.PointPieces[Point.Get(6, 7)]);
            Assert.IsTrue(grid.Amazon1Points.Contains(Point.Get(6, 3)));
            Assert.IsFalse(grid.Amazon1Points.Contains(Point.Get(0, 3)));
        }