示例#1
0
        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");
        }
示例#2
0
        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();
        }