/// <summary> /// The method update the direction of the turtle /// </summary> /// <param name="turtle"></param> private static void RotateTurtle(TurtlePointer turtle) { var previousDirection = turtle.Direction; switch (turtle.Direction) { case Directions.North: turtle.Direction = Directions.East; break; case Directions.South: turtle.Direction = Directions.West; break; case Directions.East: turtle.Direction = Directions.South; break; case Directions.West: turtle.Direction = Directions.North; break; default: break; } Writer.Write($"Turtle Direction changed from {previousDirection} to {turtle.Direction}", ConsoleColor.DarkYellow); }
public Executor(string configFile, string movesFile) { _gameConfig = JsonFileReader.IRead <Configurations>(configFile); _movements = JsonFileReader.IRead <Moves[]>(movesFile); _turtle = new TurtlePointer(_gameConfig.EntryDirection, _gameConfig.EntryPoint.XVal, _gameConfig.EntryPoint.YVal); InitializeBoard(); }
/// <summary> /// The method check whether the cell has mine or exit point. /// It prints the respective message and returns a true or false. /// </summary> /// <param name="turtle"></param> /// <param name="board"></param> /// <returns></returns> private static bool CellHasMineOrExit(TurtlePointer turtle, Dictionary <int, BoardCell[]> board) { bool loopBreak = false; if (board[turtle.XVal][turtle.YVal].HasMine) { Writer.Write("Turtle hitted the mine and killed...", ConsoleColor.DarkRed); loopBreak = true; } else if (board[turtle.XVal][turtle.YVal].IsExitPoint) { Writer.Write("Game ended successfully", ConsoleColor.Green); loopBreak = true; } return(loopBreak); }