Exemplo n.º 1
0
        public void TestTurtleOffTheBoard()
        {
            //arrange
            var board = new BoardViewModel()
            {
                N = 2, M = 2
            };
            var turtle = new TurtleViewModel()
            {
                Direction = "North", X = 1, Y = 1
            };
            var exitPoint = new BoardItemViewModel()
            {
                X = 4, Y = 5
            };
            var mines = new List <BoardItemViewModel>();

            mines.Add(new BoardItemViewModel()
            {
                X = 2, Y = 2
            });
            var moves       = "mmmmrrrmmmmmmm";
            var gameService = new GameService();

            //act
            var mockGame = gameService.Start(board, turtle, exitPoint, mines);

            mockGame = gameService.Move(moves, mockGame);
            //assert
            Assert.IsTrue(mockGame.Outcome == "Moved off the board!");
            Assert.IsTrue(mockGame.IsOver);
        }
Exemplo n.º 2
0
        public void TestTurtleSucceeds()
        {
            //arrange
            var board = new BoardViewModel()
            {
                N = 10, M = 10
            };
            var turtle = new TurtleViewModel()
            {
                Direction = "North", X = 1, Y = 1
            };
            var exitPoint = new BoardItemViewModel()
            {
                X = 1, Y = 3
            };
            var mines = new List <BoardItemViewModel>();

            mines.Add(new BoardItemViewModel()
            {
                X = 4, Y = 5
            });
            var moves       = "mmmm";
            var gameService = new GameService();

            //act
            var mockGame = gameService.Start(board, turtle, exitPoint, mines);

            mockGame = gameService.Move(moves, mockGame);
            //assert
            Assert.IsTrue(mockGame.Outcome == "Success!");
            Assert.IsTrue(mockGame.IsOver);
        }
Exemplo n.º 3
0
        private static GameViewModel StartGame(BoardViewModel board, TurtleViewModel turtle, BoardItemViewModel exitPoint, List <BoardItemViewModel> mines)
        {
            var game = StartGame(board, turtle, exitPoint, (IEnumerable <BoardItemViewModel>)mines);

            while (game != null && !game.IsOver && !game.HasErrors)
            {
                Console.WriteLine("Moves?:");
                var moves = Console.ReadLine();
                game = Move(moves, game);
            }

            return(game);
        }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            Console.WriteLine("Board?:");
            BoardViewModel board = Console.ReadLine();

            Console.WriteLine("Starting position?:");
            TurtleViewModel turtle = Console.ReadLine();

            Console.WriteLine("Exit point?:");
            BoardItemViewModel exitPoint = Console.ReadLine();

            Console.WriteLine("Mines?:");
            var mines      = new List <BoardItemViewModel>();
            var mineInputs = Console.ReadLine()?.Split(',');

            if (mineInputs != null)
            {
                mines.AddRange(mineInputs.Select(mineInput => (BoardItemViewModel)mineInput));
            }
            DisplayOutput(StartGame(board, turtle, exitPoint, mines));
        }
Exemplo n.º 5
0
 public GameViewModel Start(BoardViewModel board, TurtleViewModel turtle, BoardItemViewModel exitPoint, IEnumerable <BoardItemViewModel> mines)
 {
     return(Game.Create(board.N, board.M, turtle.X, turtle.Y, turtle.Direction, mines.Select(m => new Tuple <int, int>(m.X, m.Y)), exitPoint.X, exitPoint.Y));
 }
Exemplo n.º 6
0
 private static GameViewModel StartGame(BoardViewModel board, TurtleViewModel turtle, BoardItemViewModel exitPoint, IEnumerable <BoardItemViewModel> mines)
 {
     return(_gameService.Start(board, turtle, exitPoint, mines));
 }
        private static MainPageViewModel GetViewModelInstance()
        {
            SetupColors();

            var turtleViewModel = new TurtleViewModel();
            _dialog = new ModalDialogStub();
            _fileOperations = new FileOperationsStub();

            UnityContainer.
                RegisterInstance<IVariableHandler<float>>(FloatVariableHandler.Instance).
                RegisterInstance<ITurtleViewModel>(turtleViewModel).
                RegisterInstance<IFileOperations>(_fileOperations).
                RegisterInstance<IModalSaveDialog>(_dialog).
                RegisterInstance<ITurtleGraphicsFunctionHandler>(TurtleGraphicsFunctionHandler.Instance).
                RegisterType<IModalLoadDialog, SilverlightLoadModelDialog>().
                 RegisterType<IModalPrintDialog, SilverlightModalPrintDialog>().
                RegisterType<ICanceller, Canceller>(new ContainerControlledLifetimeManager()).
                RegisterType<ITurtleGraphicsExecutionEngine, TurtleGraphicsExecutionEngine>(new ContainerControlledLifetimeManager()).
                RegisterType<ITurtleGraphicsSyntaxAnalyser, TurtleGraphicsSyntaxAnalyser>(new ContainerControlledLifetimeManager()).
                RegisterType<ITurtleGraphicsLexicalAnalyser, TurtleGraphicsLexicalAnalyser>(new ContainerControlledLifetimeManager()).
                RegisterType<ITurtleGraphicsControlStructures, TurtleGraphicsControlStructures>(new ContainerControlledLifetimeManager()).
                RegisterType<ITurtleGraphicsRuntime, SilverlightTurtleGraphicsRuntime>(new ContainerControlledLifetimeManager()).
                RegisterType<ITurtleGraphicsCommandMatcher, TurtleGraphicsReflectionMatcher>(new ContainerControlledLifetimeManager()).
                RegisterType<MainPageViewModel>("MAINPAGEVIEWMODEL", new ContainerControlledLifetimeManager());

            _turtlePointer = new Image { Width = 16, Height = 16 };
            _debugWindow = new TextBox();
            _tiErrorTab = new TabItem();
            _drawingSurface = new Canvas { Width = 1000, Height = 1000 };
            _scrollViewer = new ScrollViewer();

            var parameterOverrides = new ParameterOverrides
                                         {
                                             {"drawingSurface", _drawingSurface},
                                             {"turtlePointer", _turtlePointer},
                                             {"colors", _colors},
                                             {"startForeColorIdx", 1},
                                             {"startBackColorIdx", 2},
                                             {"debugWindow", _debugWindow},
                                             {"initialPenWidth", 1},
                                             {"screenScroller", _scrollViewer},
                                         };

            var wpfTurtleGraphics = UnityContainer.Resolve<SilverlightTurtleGraphicsRuntime>(parameterOverrides);

            parameterOverrides = new ParameterOverrides
                                         {
                                             {"turtleGraphicsSystem", wpfTurtleGraphics},
                                         };

            UnityContainer.Resolve<ITurtleGraphicsCommandMatcher>(parameterOverrides);

            parameterOverrides = new ParameterOverrides
                                         {
                                             {"turtleProgramStorage", new TurtleProgramStorage()},
                                             {"turtlePointer", _turtlePointer},
                                             {"debugWindow", _debugWindow},
                                             {"tiErrorTab", _tiErrorTab},
                                             {"turtleGraphicsRuntime", wpfTurtleGraphics},
                                             {"startForeColorIndex", 1},
                                             {"initialPenWidth", 1},
                                             {"colors", _colors},
                                         };

            return UnityContainer.Resolve<MainPageViewModel>("MAINPAGEVIEWMODEL", parameterOverrides);
        }