public ControlInterface()
        {
            var registry = new Registry();

            registry.IncludeRegistry <DependencyRegistry>();
            var container = new Container(registry);

            _rController = container.GetInstance <IRoverController>();
        }
        public void Setup()
        {
            _compass = new Compass();
            _planet  = new Mars();

            _navigation = new Navigation(_planet, _compass, new Coordinates()
            {
                X = 1, Y = 0
            }, CardinalHeading.South);

            _rover           = new Core.MarsRover(_navigation);
            _roverController = new MarsRoverController(5, _rover);
        }
Exemple #3
0
        public void AttachContoller(IRoverController controller)
        {
            if (controllerSession != null)
            {
                controllerSession.Dispose();
                controllerSession = null;
            }

            if (controller != null)
            {
                controllerSession = controller.Subscribe(this);
            }
        }
Exemple #4
0
        private static void ReceiveCommands(IRoverController controller)
        {
            while (true)
            {
                var instruction = GetInput();

                ICommand command = StringCommandParser(controller.Rover, instruction);
                if (command != null)
                {
                    controller.AddCommand(command);
                }
            }
        }
Exemple #5
0
        public static IRoverController GetRoverController()
        {
            if (instance == null)
            {
                lock (locker)
                {
                    if (instance == null)
                    {
                        instance = new RoverController();
                    }
                }
            }

            return(instance);
        }
Exemple #6
0
        public MainWindow()
        {
            resources = new ResourceSet(typeof(Resources).Assembly.GetManifestResourceStream("MarsRover.Properties.Resources.resources"));

            controller = new RoverController(worldSize);

            InitializeComponent();
            timer.Interval = new TimeSpan(0, 0, 0, 0, 16);
            timer.Tick    += Update;
            timer.Start();

            CreateImageFields(controller.GetWorld());

            Rover.Instance.image.Source = BitmapUtil.BitmapToImageSource(resources.GetObject("Curiousity2") as Bitmap);
            Rover.Instance.image.Width  = 50;
            Rover.Instance.image.Height = 50;
            WorldMap.Children.Add(Rover.Instance.image);
            Canvas.SetTop(Rover.Instance.image, Rover.Instance.x * gridSize);
            Canvas.SetLeft(Rover.Instance.image, Rover.Instance.y * gridSize);
            Rover.Instance.image = Rover.Instance.image;

            KeyDown += Keyboard;
        }
Exemple #7
0
 public void Given(string startDirectionFacing)
 {
     Planet     = Mef.Instance.GetPlanet(10);
     Controller = Mef.Instance.GetRoverController(Planet, startDirectionFacing);
 }
Exemple #8
0
 /// <summary>
 /// Rover takımına yeni bir rover ekler.
 /// </summary>
 /// <param name="rover">Eklenecek rover</param>
 public void AddRover(IRoverController rover)
 {
     _rovers.Add(rover);
 }
Exemple #9
0
 /// <summary>
 /// Plato üzerinde rover ı hareket ettirir.
 /// </summary>
 /// <param name="rover">Hareket ettirilcek rover.</param>
 public void ExecuteRover(IRoverController rover)
 {
     rover.ExecuteCommand();
 }
 public static void AttachTo(this IRoverController controller, Rover rover)
 {
     Contract.Requires(rover != null);
     rover.AttachContoller(controller);
 }
Exemple #11
0
 public RoverService(IRoverController controller)
 {
     _controller = controller;
 }