Пример #1
0
 public void CanUpdatePlayerLocation()
 {
     var model = new Model(_level, _mobs, behaviourModel);
     var originalPlayerLocation = model.Mobiles.WithName("player").Location;
     var message = new ControllerMessage{Body = "down", Header = "player"};
     model.InputBuffer.Send(message);
     var newPlayerLocation = model.Mobiles.Tiles.FirstOrDefault(p => p.Name == "player").Location;
     Assert.AreNotEqual(originalPlayerLocation, newPlayerLocation);
     Assert.AreEqual(originalPlayerLocation.Y + 1, newPlayerLocation.Y);
 }
Пример #2
0
        private static void Main(string[] args)
        {
            var level = new[,]{
                                {'#', '#', '#', '#', '#','#','#','#','#','#','#'},
                                {'#', '.', '.', '.', '.','.','.','#','.','.','#'},
                                {'#', '.', '.', '#', '.','.','.','#','.','.','#'},
                                {'#', '.', '.', '#', '.','.','.','.','.','.','#'},
                                {'#', '.', '.', '#', '.','.','.','#','.','.','#'},
                                {'#', '.', '.', '#', '.','.','.','#','.','.','#'},
                                {'#', '.', '.', '#', '.','.','.','#','.','.','#'},
                                {'#', '.', '.', '#', '.','.','.','#','.','.','#'},
                                {'#', '.', '.', '#', '.','.','.','#','.','.','#'},
                                {'#', '#', '#', '#', '#','.','.','#','.','.','#'},
                                {'#', '.', '.', '.', '#','#','#','#','.','.','#'},
                                {'#', '.', '.', '.', '.','.','.','.','.','.','#'},
                                {'#', '.', '.', '.', '#','#','.','#','.','.','#'},
                                {'#', '.', '.', '.', '#','.','.','.','.','.','#'},
                                {'#', '.', '.', '.', '#','.','.','.','.','.','#'},
                                {'#', '#', '.', '#', '#','#','#','#','#','#','#'}
                            };

            var mobiles = new[,]{
                                {'#', '#', '#', '#', '#','#','#','#','#','#','#'},
                                {'#', '.', '.', '.', '.','.','.','#','.','.','#'},
                                {'#', '.', '.', '#', '0','0','.','#','.','.','#'},
                                {'#', '@', '.', '#', '.','0','.','.','.','.','#'},
                                {'#', '.', '.', '#', 'M','.','.','#','.','.','#'},
                                {'#', '.', '.', '#', '.','.','.','#','.','.','#'},
                                {'#', '.', '.', '#', '.','.','.','#','.','.','#'},
                                {'#', '.', '0', '#', '.','.','.','#','.','.','#'},
                                {'#', '.', '.', '#', '.','.','.','#','.','.','#'},
                                {'#', '#', '#', '#', '#','.','.','#','.','.','#'},
                                {'#', '.', '.', '.', '#','#','#','#','.','.','#'},
                                {'#', '.', '.', '.', '.','.','.','.','.','.','#'},
                                {'#', '.', '.', '.', '#','#','.','#','.','.','#'},
                                {'#', '.', '.', '.', '#','M','0','m','.','.','#'},
                                {'#', '.', 'H', '.', '#','.','.','.','.','.','#'},
                                {'#', '#', '.', '#', '#','#','#','#','#','#','#'}
                            };
            var behaviourModel = new BehaviourModel();
            var model = new Model(level, mobiles, behaviourModel);
            var controller = new Controller(model);
            controller.Init();
        }
Пример #3
0
        public void CanInjectControllerWithLevel()
        {
            var model = new Model(_level, _mobs, behaviourModel);
            model.InputBuffer.Send(new ControllerMessage { Header = "player", Body = "up" });

            // Check that the arrays are the same length
            Assert.That(model.Statics.Tiles.Count() == _level.Length);

            // Check that we get back what we put in
            for (var i = 0; i < _level.GetWidth(); i++)
            {
                for (var j = 0; j < _level.GetHeight(); j++)
                {
                    var token = _level[i, j];
                    if(token == '@')
                        Assert.That(token == model.Mobiles[i,j].Token);
                    else
                        Assert.That(token == model.Statics[i,j].Token);

                }
            }
        }