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); }
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); }
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); }
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)); }
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)); }
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); }