Exemplo n.º 1
0
 override public List <core.Puzzle> GetPuzzlesWithState(Level level, params PuzzleSolvedState[] states)
 {
     return(QueryWithState(level.Ref, states)
            .Select(
                p => new core.Puzzle(level, PuzzleState.FromCompactString(p.InitialConfig)))
            .ToList());
 }
Exemplo n.º 2
0
        public void TestCompactString()
        {
            var str = "abcd";
            var ps  = PuzzleState.FromCompactString(str);

            Assert.AreEqual(ps.Count, 4, "State has 4 pieces");
            Assert.AreEqual(ps.numColors, 4, "State has 4 colors");
            Assert.IsFalse(ps.sided, "state is sided");

            var ps1 = ps.Flip(new Move(0, Side.Right));

            Assert.AreEqual("dcba", ps1.ToCompactString(), "Flipped compact representation matches");

            var sps = PuzzleState.FromCompactString("$abcd");

            Assert.AreEqual(sps.Count, 4, "State has 4 pieces");
            Assert.AreEqual(sps.numColors, 4, "State has 4 colors");
            Assert.IsTrue(sps.sided, "state is sided");

            var sps2 = sps.Flip(new Move(2, Side.Left));

            // new expected state: CBAd
            Assert.AreEqual(sps2.ColorIndex(0), 2, "piece 0 has color index 2");
            Assert.IsTrue(sps2.Rotated(0), "piece 0 is rotated");
            Assert.AreEqual(sps2.ColorIndex(1), 1, "piece 1 has color index 1");
            Assert.IsTrue(sps2.Rotated(1), "piece 1 is rotated");
            Assert.AreEqual(sps2.ColorIndex(2), 0, "piece 2 has color index 0");
            Assert.IsTrue(sps2.Rotated(2), "piece 2 is rotated");
            Assert.AreEqual(sps2.ColorIndex(3), 3, "piece 3 has color index 3");
            Assert.IsTrue(!sps2.Rotated(3), "piece 3 is NOT rotated");

            Assert.AreEqual("$CBAd", sps2.ToCompactString(), "Compact string matches expected");
        }
Exemplo n.º 3
0
        // fake puzzle & level data, will not be initialized anyway
        private Puzzle GenDummyPuzzle(Level.LevelType type, string solved, string initial)
        {
            var solvedState  = PuzzleState.FromCompactString(solved);
            var initialState = PuzzleState.FromCompactString(initial);
            var level        = new Level(type, solvedState, null, null, new int[1] {
                1
            }, 1, 0);

            return(new Puzzle(level, initialState));
        }