public string runSequence(List <Action> sequence, Turtle turtle, Board board) { Console.Write($" | Position: { turtle.XPos }-{ turtle.YPos }"); Console.WriteLine($" | Direction: { turtle.Direction.ToString() }"); foreach (var action in sequence.Select((value, i) => new { i, value })) { Console.WriteLine($"{ action.value.ToString()}"); switch (action.value) { case Action.Move: turtle.move(); if (board.isTurtleOffBoard(turtle.getxPosition(), turtle.getyPosition())) { return("Turtle is off the board"); } else if (board.isTurtleOnMine(turtle.getxPosition(), turtle.getyPosition())) { return("BOOM! Turtle is blown up :("); } else if (board.isTurtleOnExit(turtle.getxPosition(), turtle.getyPosition())) { return("Yay! Turtle has escaped"); } break; case Action.Rotate: turtle.rotate(); break; } Console.Write($" | Position: { turtle.XPos }-{ turtle.YPos }"); Console.WriteLine($" | Direction: { turtle.Direction.ToString() }"); } return("Turtle never found exit"); }
static void Main(string[] args) { string setUpFilepath = @".\instructions\setup.txt"; string directionsFolder = @".\instructions"; ArrayList lines = Utils.getFileAsList(setUpFilepath); Nullable <bool>[,] grid = Utils.getMap(lines); if (null == grid) { Console.WriteLine("Error Loading Grid"); Console.Read(); Environment.Exit(1); } DirectoryInfo d = new DirectoryInfo(@directionsFolder); FileInfo[] files = d.GetFiles("*.txt"); int i = 0; foreach (FileInfo file in files) { if (file.Name.StartsWith("directions")) { i++; lines = Utils.getFileAsList(directionsFolder + @"\" + file.Name); ArrayList instructions = Utils.getTurtleInstructions(lines); if (instructions.Count == 0) { Console.WriteLine("Error Loading Turtle instructions"); Console.Read(); Environment.Exit(1); } Turtle turtle = new Turtle(instructions); bool isActionsBreak = false; foreach (Action action in turtle.Actions) { if (action.Equals(Action.Rotate)) { turtle.rotate(); } else { turtle.move(grid.GetLength(0), grid.GetLength(1)); } if (grid[turtle.X, turtle.Y] == true) { isActionsBreak = true; Console.WriteLine("Sequence " + i + " We have Reached Our Goal !"); break; } if (grid[turtle.X, turtle.Y] == false) { isActionsBreak = true; Console.WriteLine("Sequence " + i + " We have Struck a Mine!!"); break; } } if (!isActionsBreak) { Console.WriteLine("Sequence " + i + " Still in Danger!!"); } } } Console.Read(); }