Exemplo n.º 1
0
        public void LevelGenerationTest()
        {
            const int height             = 3;
            const int width              = 6;
            var       boardConfiguration = new[] {
                new[] { '#', '.', '#', '#', '#', '.' },
                new[] { '#', '#', '.', '#', '#', '.' },
                new[] { '#', '.', '#', '.', '$', '#' }
            };
            var path  = TestUtils.WriteToFile(boardConfiguration, "level_test.txt");
            var level = new FileLevelFactory(path).CreateLevel();

            Assert.AreEqual(height, level.Board.Height);
            Assert.AreEqual(width, level.Board.Width);
            for (var i = 0; i < height; i++)
            {
                for (var j = 0; j < width; j++)
                {
                    switch (boardConfiguration[i][j])
                    {
                    case '#':
                        Assert.IsTrue(level.Board.IsWall(new Position(i, j)));
                        break;

                    case '.':
                        Assert.IsTrue(level.Board.IsEmpty(new Position(i, j)));
                        break;

                    case '$':
                        Assert.AreEqual(level.Player.Position, new Position(i, j));
                        break;
                    }
                }
            }
        }
Exemplo n.º 2
0
        public void BoardConfigurationTest()
        {
            const int height             = 3;
            const int width              = 6;
            var       boardConfiguration = new[]
            {
                new[] { '#', '.', '#', '#', '#', '.' },
                new[] { '#', '#', '.', '#', '#', '.' },
                new[] { '#', '.', '#', '.', '$', '#' }
            };
            var path  = TestUtils.WriteToFile(boardConfiguration, "level_test.txt");
            var board = new FileLevelFactory(path).CreateLevel().Board;

            for (var i = 0; i < height; i++)
            {
                for (var j = 0; j < width; j++)
                {
                    Assert.IsTrue(board.CheckOnBoard(new Position(i, j)));
                }
            }
            for (var i = 0; i < height; i++)
            {
                Assert.IsFalse(board.CheckOnBoard(new Position(i, -1)));
                Assert.IsFalse(board.CheckOnBoard(new Position(i, width)));
            }
            for (var j = 0; j < width; j++)
            {
                Assert.IsFalse(board.CheckOnBoard(new Position(-1, j)));
                Assert.IsFalse(board.CheckOnBoard(new Position(height, j)));
            }
        }
Exemplo n.º 3
0
        public void BoardConfigurationTest()
        {
            var path  = Path.Combine(AppDomain.CurrentDomain.BaseDirectory ?? string.Empty, "../../../test_maps/level_snapshot.txt");
            var level = new FileLevelFactory(path).CreateLevel();
            var board = level.Board;

            for (var i = 0; i < height; i++)
            {
                for (var j = 0; j < width; j++)
                {
                    Assert.IsTrue(board.CheckOnBoard(new Position(i, j)));
                }
            }

            for (var i = 0; i < height; i++)
            {
                Assert.IsFalse(board.CheckOnBoard(new Position(i, -1)));
                Assert.IsFalse(board.CheckOnBoard(new Position(i, width)));
            }

            for (var j = 0; j < width; j++)
            {
                Assert.IsFalse(board.CheckOnBoard(new Position(-1, j)));
                Assert.IsFalse(board.CheckOnBoard(new Position(height, j)));
            }
        }
Exemplo n.º 4
0
        public void LevelToSnapshotFileTest()
        {
            var stringSnapshot = "5 6\n" +
                                 "# . # # # . \n" +
                                 "# . . # . . \n" +
                                 "# . # . . # \n" +
                                 "# . # . . # \n" +
                                 "# # . . . # \n" +
                                 "@ 0 1 2 1 0\n" +
                                 "H 1 2\n" +
                                 "% 1 5 3 2 1\n" +
                                 "* 2 1 1 11 1\n" +
                                 "$ testplayer 2 4 4 5 6 2 A 0 0 F 1 1 1 H 2 2 \n" +
                                 "E 3 1\n" +
                                 "A 3 3\n" +
                                 "o 4 2 3 2 6\n" +
                                 "F 4 4\n";
            var level = FileLevelFactory.FromString(stringSnapshot).CreateLevel();

            level.CurrentPlayer = level.GetPlayer("testplayer");
            var levelSnapshot = level.Save();

            Assert.AreEqual(
                stringSnapshot.Split().Select(s => s.Trim()).Where(s => s.Length > 0).ToArray(),
                levelSnapshot.ToString().Split().Select(s => s.Trim()).Where(s => s.Length > 0).ToArray()
                );
        }
Exemplo n.º 5
0
        public void LevelFromSnapshotFileTest()
        {
            var path  = Path.Combine(AppDomain.CurrentDomain.BaseDirectory ?? string.Empty, "../../../test_maps/level_snapshot.txt");
            var level = new FileLevelFactory(path).CreateLevel();

            CheckLevelConfiguration(level);
        }
Exemplo n.º 6
0
        public void PlayerMoveOutOfBoardTest()
        {
            var level             = new FileLevelFactory(path).CreateLevel();
            var board             = level.Board;
            var player            = level.Player;
            var oldPlayerPosition = player.Position;

            level.Player.Move(1, 0, board);
            Assert.AreEqual(oldPlayerPosition, level.Player.Position);
        }
Exemplo n.º 7
0
        public void PlayerMoveToEmptyPositionTest()
        {
            var level             = new FileLevelFactory(path).CreateLevel();
            var board             = level.Board;
            var player            = level.Player;
            var oldPlayerPosition = player.Position;
            var newPlayerPosition = new Position(player.Position.Y, player.Position.X - 1);

            level.Player.Move(0, -1, board);
            Assert.IsTrue(board.IsEmpty(oldPlayerPosition));
            Assert.AreEqual(newPlayerPosition, level.Player.Position);
        }
Exemplo n.º 8
0
        public void NetworkMobMoveTest()
        {
            var path    = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "../../../test_maps/mob_interaction_test_map.txt");
            var factory = new FileLevelFactory(path);

            factory.SetMobFactory(new NetworkMobFactory());
            factory.SetPlayerFactory(new NetworkPlayerFactory(new ExitGameInteractor()));
            var level = factory.CreateLevel();

            level.CurrentPlayer = level.GetPlayer("testplayer");

            var networkMob  = level.Mobs[4];
            var newPosition = networkMob.GetBehaviour().MakeMove(level, networkMob.Position);

            Assert.AreEqual(new Position(2, 5), newPosition);
        }
Exemplo n.º 9
0
        public void GraphConfigurationTest()
        {
            var path           = Path.Combine(AppDomain.CurrentDomain.BaseDirectory ?? string.Empty, "../../../test_maps/level_snapshot.txt");
            var level          = new FileLevelFactory(path).CreateLevel();
            var graph          = level.Graph;
            var playerPosition = level.GetPlayer("testplayer").Position;

            Assert.AreEqual(4, level.Mobs.Count);
            var modPosition = level.GetMob(level.Mobs[0].Id.ToString()).Position;

            Assert.AreEqual(new Position(2, 4), graph.Farthest(playerPosition, modPosition));

            var inventoryPosition = new Position(4, 4);

            Assert.AreEqual(new Position(3, 4), graph.Nearest(playerPosition, inventoryPosition));
        }
Exemplo n.º 10
0
        public void LevelSnapshotStringTest()
        {
            var stringSnapshot = "5 6\n" +
                                 "# . # # # .\n" +
                                 "# . . # . .\n" +
                                 "# . # . . #\n" +
                                 "# . # . . #\n" +
                                 "# # . . . #\n" +
                                 "@ 0 1 2 1 0\n" +
                                 "H 1 2\n" +
                                 "% 1 5 3 2 1\n" +
                                 "* 2 1 1 11 1\n" +
                                 "$ testplayer 2 4 4 5 6 2 A 0 0 F 1 1 1 H 2 2\n" +
                                 "E 3 1\n" +
                                 "A 3 3\n" +
                                 "o 4 2 3 2 6\n" +
                                 "F 4 4";
            var levelFromString = FileLevelFactory.FromString(stringSnapshot).CreateLevel();

            CheckLevelConfiguration(levelFromString);
        }