Beispiel #1
0
        public Robo(INavegacao navegacao)
        {

            // De acordo com sentido de sua frente o robo muda de comportamento dinamicamente alterando sua classe (State Pattern)

             _navegacao = navegacao;
            string sentido = _navegacao.GetSentido();

            switch (sentido.ToUpper())
            {

                case Facing.North:
                    Direcao = new Norte(_navegacao);
                    break;
                case Facing.East:
                    Direcao = new Leste(_navegacao);
                    break;
                case Facing.South:
                    Direcao = new Sul(_navegacao);
                    break;
                case Facing.West:
                    Direcao = new Oeste(_navegacao);
                    break;

            }
            

        }
Beispiel #2
0
        public string RealizarMovimentacoes(coordenada coordenada)
        {
            List <Modelo> lista = new List <Modelo>();
            Modelo        modelo;

            String[] vetorCoordenadas = coordenada.Criterios.Split(';');

            foreach (string modelos in vetorCoordenadas)
            {
                string[] dadosModelo = modelos.Split(',');

                modelo = new Modelo
                {
                    Direacao    = char.Parse(dadosModelo[0].ToUpper()),
                    Intensidade = int.Parse(dadosModelo[1])
                };
                lista.Add(modelo);
            }

            foreach (Modelo mode in lista)
            {
                EnumDirecao retorno = (EnumDirecao)Enum.ToObject(typeof(EnumDirecao), mode.Direacao);
                Type        type    = Type.GetType("Cartesiano." + retorno.ToString());
                IDirecao    objeto  = (IDirecao)Activator.CreateInstance(type);
                objeto.Add(coordenada, mode);
                coordenada = objeto.GetRetorno();
            }
            return(coordenada.CoordenadaX.ToString() + "," + coordenada.CoordenadaY.ToString());
        }
Beispiel #3
0
 public void RotacionarDireita()
 {
     Direcao = Direcao.RotacionaDireita();
 }
Beispiel #4
0
 public void RotacionarEsquerda()
 {
     Direcao = Direcao.RotacionaEsquerda();
 }