Example #1
0
        public void Run()
        {
            try
            {
                var mineField      = _mineFieldService.InitMineField();
                var turtleExtended = _turtleService.InitTurtle(mineField);
                var turtle         = turtleExtended.Turtle;
                var moves          = turtleExtended.Moves.ToArray();

                var result = ResultType.StillInDanger;
                for (int i = 0; i < moves.Length; i++)
                {
                    var move = moves[i];

                    /*
                     * Console.Output of current picture if needed
                     */
                    _turtleService.TryMoveTurtle(turtle, move, mineField.MaxPositionX, mineField.MaxPositionY);

                    var currentTyle = mineField[turtle.CurrentPositionX, turtle.CurrentPositionY];
                    result = _tileService.GetResult(currentTyle);

                    if (result != ResultType.StillInDanger)
                    {
                        break;
                    }
                }

                Console.WriteLine(result);
            }
            catch (InvalidSettingsException)
            {
                Console.WriteLine("Parse settings failed.");
            }
            catch (MineFieldInitializationException)
            {
                Console.WriteLine("Wrong settings.");
            }
            catch (TurtleOutOfFieldException)
            {
                Console.WriteLine("Turtle is out of the field.");
            }
            catch (TurtleInitialTileException)
            {
                Console.WriteLine("Turtle must be on an empty tile in the beginning.");
            }
            catch (Exception)
            {
                Console.WriteLine("Oops, something went wrong...");
            }
            Console.ReadKey();
        }