Пример #1
0
        public void TestFieldOfViewWithMapEdgeUp()
        {
            GameSetter.SetSampleMap(5, 5);

            var expectedResult = new List <Point>
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(2, 0),
                new Point(3, 0),
                new Point(4, 0),
                new Point(1, 1),
                new Point(2, 1),
                new Point(3, 1),
                new Point(1, 2),
                new Point(2, 2),
                new Point(3, 2)
            };

            TestFieldOfView(new Point(2, 2), Direction.Up, 3, 2, expectedResult);
        }
Пример #2
0
        public void ShortestPathSearchWithSolidObjectAndOpenedDoor()
        {
            GameSetter.SetMapAndFillWithDecors(3, 3, new List <Tuple <Point, IDecor> >
            {
                Tuple.Create(new Point(1, 0), (IDecor) new Wall()),
                Tuple.Create(new Point(1, 2), (IDecor) new Wall()),
                Tuple.Create(new Point(1, 1), (IDecor) new OpenedDoor())
            });

            var from      = new Point(0, 1);
            var to        = new Point(2, 1);
            var direction = Direction.Right;

            var answer = new List <Query>
            {
                Query.Move,
                Query.Move
            };
            var result = PathFinder.GetPathFromTo(from, to, direction);

            CheckPath(from, to, direction, answer, result);
        }
Пример #3
0
        public void ShortestPathSearchWithMobileObject()
        {
            GameSetter.SetMapAndFillWithDecors(3, 3, new List <Tuple <Point, IDecor> >());
            MobileObjectsManager.InitializationMobileOjects(new HashSet <ICreature>
            {
                MobileObjectsManager.GetCreatureByNameAndInitParams(
                    CreatureTypes.Guard, new MobileObjectInitialization(new Point(1, 1), Direction.Down))
            });

            var from      = new Point(1, 0);
            var to        = new Point(1, 2);
            var direction = Direction.Down;

            var answer = new List <Query>
            {
                Query.Move,
                Query.Move
            };
            var result = PathFinder.GetPathFromTo(from, to, direction);

            CheckPath(from, to, direction, answer, result);
        }
Пример #4
0
        public void PlayerSetterShouldCreateHumanPlayer()
        {
            //Arrange
            string stringInput = "fakeValue";

            Configuration.Setup(x => x.Message.firstVar_15_).Returns(stringInput);
            Configuration.Setup(x => x.Message.secondVar_16_).Returns(It.IsAny <string>());
            Configuration.Setup(x => x.Constant.numberOfCards_1_).Returns(It.IsAny <int>());
            StrategyFactory.Setup(x => x.CreateHumanStrategy()).Returns(new HumanStrategy(Configuration.Object, ConsoleReadMock.Object));
            PlayerFactory.Setup(x => x.CreatePlayer(StrategyFactory.Object.CreateHumanStrategy())).Returns(new Player(Configuration.Object, StrategyFactory.Object.CreateHumanStrategy()));
            InputProvider.Setup(x => x.ReturnUserNameInputValue()).Returns(stringInput);
            StrategyFactory.Setup(x => x.CreateStrategyA()).Returns(value: new StrategyA(Configuration.Object, ConsoleReadMock.Object));
            PlayerFactory.Setup(x => x.CreatePlayer(StrategyFactory.Object.CreateStrategyA())).Returns(new Player(Configuration.Object, StrategyFactory.Object.CreateStrategyA()));

            //Act
            var gameSetter = new GameSetter(Configuration.Object, InputProvider.Object,
                                            PlayerFactory.Object, StrategyFactory.Object);

            gameSetter.CreatePlayersFor36CardGame();
            //Assert
            Assert.IsNotNull(gameSetter.Players[0]);
            Assert.IsNotNull(gameSetter.Players[1]);
        }
Пример #5
0
        public void TestCreateTwoNoiseSourceAndRemoveOneOfThem()
        {
            var width  = 2;
            var height = 2;

            GameSetter.SetMapAndFillWithDecors(width, height, new List <Tuple <Point, IDecor> >());
            var map     = GetMap(width, height);
            var sourse1 = new NoiseSource(NoiseType.GuardVoice, 1, 2, new Point(1, 1), "");
            var sourse2 = new NoiseSource(NoiseType.GuardVoice, 1, 2, new Point(0, 0), "");

            Dijkstra.DijkstraTraversal(map, sourse1, (noises, noise) => { noises.Add(noise); });
            Dijkstra.DijkstraTraversal(map, sourse2, (noises, noise) => { noises.Add(noise); });
            Dijkstra.DijkstraTraversal(map, sourse2, (noises, noise) => { noises.Remove(noise); });
            var mapAnswer = GetMap(width, height);

            ChangeMap(mapAnswer,
                      Tuple.Create(new Point(0, 0), new Noise(sourse1, 1)),
                      Tuple.Create(new Point(0, 1), new Noise(sourse1, 1)),
                      Tuple.Create(new Point(1, 0), new Noise(sourse1, 1)),
                      Tuple.Create(new Point(1, 1), new Noise(sourse1, 2)));

            CheckMap(map, mapAnswer);
        }
Пример #6
0
        public void TestMovePlayer()
        {
            GameSetter.SetSampleMap(3, 3);
            var player = new Player(new MobileObjectInitialization(
                                        new Point(1, 1), Direction.Down));

            MobileObjectsManager.InitializationMobileOjects(new HashSet <ICreature> {
                player
            });

            var gs   = new GameState();
            var move = new List <Keys>
            {
                Keys.W
            };

            foreach (var key in move)
            {
                GameState.KeyPressed = key;
                gs.UpdateState();
            }

            Assert.True(MapManager.Map[1, 2].Creature is Player);
        }
Пример #7
0
        public void TestCreateNoiseSourceWithLowIntensity()
        {
            var width  = 5;
            var height = 5;

            GameSetter.SetMapAndFillWithDecors(width, height, new List <Tuple <Point, IDecor> >());
            var map    = GetMap(width, height);
            var sourse = new NoiseSource(NoiseType.GuardVoice, 1, 2, new Point(2, 2), "");

            Dijkstra.DijkstraTraversal(map, sourse, (noises, noise) => { noises.Add(noise); });
            var mapAnswer = GetMap(width, height);

            ChangeMap(mapAnswer,
                      Tuple.Create(new Point(1, 1), new Noise(sourse, 1)),
                      Tuple.Create(new Point(1, 2), new Noise(sourse, 1)),
                      Tuple.Create(new Point(1, 3), new Noise(sourse, 1)),
                      Tuple.Create(new Point(2, 1), new Noise(sourse, 1)),
                      Tuple.Create(new Point(2, 2), new Noise(sourse, 2)),
                      Tuple.Create(new Point(2, 3), new Noise(sourse, 1)),
                      Tuple.Create(new Point(3, 1), new Noise(sourse, 1)),
                      Tuple.Create(new Point(3, 2), new Noise(sourse, 1)),
                      Tuple.Create(new Point(3, 3), new Noise(sourse, 1)));
            CheckMap(map, mapAnswer);
        }
Пример #8
0
 public void Fin()
 {
     gs = null;
     SceneManager.LoadScene(SceneManager.GetActiveScene().name);
 }