public void TurtleInitialDirection_InitializeTurtleEast_ReturnEast() { LocationData boardDimension = new LocationData() { X = 5, Y = 4 }; LocationData exitLocation = new LocationData() { X = 4, Y = 2 }; LocationData startingPositon = new LocationData() { X = 0, Y = 1 }; var initialDirection = DirectionEnum.E; var mineLocations = new[] { new LocationData() { X = 1, Y = 1 }, new LocationData() { X = 3, Y = 1 } , new LocationData() { X = 3, Y = 3 } }; _turtleGame = new TurtleGame(boardDimension, initialDirection, exitLocation, startingPositon, mineLocations); Assert.AreEqual(_turtleGame.GetDirection, DirectionEnum.E); }
public void TurtleFacingEast_Move_ChangedLocation() { LocationData boardDimension = new LocationData() { X = 5, Y = 4 }; LocationData exitLocation = new LocationData() { X = 4, Y = 2 }; LocationData startingPositon = new LocationData() { X = 0, Y = 1 }; var initialDirection = DirectionEnum.E; var mineLocations = new[] { new LocationData() { X = 1, Y = 1 }, new LocationData() { X = 3, Y = 1 } , new LocationData() { X = 3, Y = 3 } }; _turtleGame = new TurtleGame(boardDimension, initialDirection, exitLocation, startingPositon, mineLocations); _turtleGame.MoveTurtle("M"); Assert.AreEqual(_turtleGame.GetDirection, DirectionEnum.E); Assert.IsTrue(_turtleGame.GetLocation.IsEqual(new LocationData { X = 1, Y = 1 })); }
public void TurtleFacingEast_RotateTurtleLeft_ReturnNorth() { LocationData boardDimension = new LocationData() { X = 5, Y = 4 }; LocationData exitLocation = new LocationData() { X = 4, Y = 2 }; LocationData startingPositon = new LocationData() { X = 0, Y = 1 }; var initialDirection = DirectionEnum.E; var mineLocations = new[] { new LocationData() { X = 1, Y = 1 }, new LocationData() { X = 3, Y = 1 } , new LocationData() { X = 3, Y = 3 } }; _turtleGame = new TurtleGame(boardDimension, initialDirection, exitLocation, startingPositon, mineLocations); _turtleGame.MoveTurtle("L"); Assert.AreEqual(_turtleGame.GetDirection, DirectionEnum.N); }
public void Turtle_Setup() { LocationData boardDimension = new LocationData() { X = 5, Y = 4 }; LocationData exitLocation = new LocationData() { X = 4, Y = 2 }; LocationData startingPositon = new LocationData() { X = 0, Y = 1 }; var initialDirection = DirectionEnum.N; var mineLocations = new[] { new LocationData() { X = 1, Y = 1 }, new LocationData() { X = 3, Y = 1 } , new LocationData() { X = 3, Y = 3 } }; _turtleGame = new TurtleGame(boardDimension, initialDirection, exitLocation, startingPositon, mineLocations); }
public async Task RunGame() { try { var boardConfiguration = await _boardConfigurationProvider.GetBoardConfiguration(); var movesConfiguration = await _movesConfigurationProvider.GetMovesConfiguration(); if (_boardValidators.Any(x => !x.IsValid(boardConfiguration))) { _outputLogger.LogMessage("Board Configuration Invalid"); return; } if (_moveValidators.Any(x => !x.IsValid(movesConfiguration))) { _outputLogger.LogMessage("Move Configuration Invalid"); return; } var turtleGame = new TurtleGame(boardConfiguration); foreach (var move in movesConfiguration.Moves) { turtleGame.Apply(move.ToMoveType()); if (turtleGame.HitAMine) { _outputLogger.LogMessage($"Hit a Mine at ({turtleGame.CurrentXPosition},{turtleGame.CurrentYPosition})"); break; } if (turtleGame.ReachedEnd) { _outputLogger.LogMessage($"Reached The End at ({turtleGame.CurrentXPosition},{turtleGame.CurrentYPosition})"); break; } } if (!turtleGame.ReachedEnd && !turtleGame.HitAMine) { _outputLogger.LogMessage($"No Moves Remaining finished at ({turtleGame.CurrentXPosition},{turtleGame.CurrentYPosition})"); } } catch (Exception ex) { _outputLogger.LogMessage("Error Running Game"); throw; } }
public TestContext CreateGame() { _sut = new TurtleGame(_boardConfiguration); return(this); }