Example #1
0
        /// <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);
        }
Example #2
0
 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();
 }
Example #3
0
        /// <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);
        }