Example #1
0
        private Sonda(string NomeSonda, Coordenadas Planalto, Localizacao Aterrissagem)
        {
            if (string.IsNullOrEmpty(NomeSonda))
            {
                throw new System.Exception("Poxa chefe não vai me dar um nome :(");
            }

            this.localizacaoatual = Aterrissagem;
            this.NomeSonda        = NomeSonda;
            this.Aterrissagem     = Aterrissagem ?? throw new System.Exception("Informe onde você deseja pousar, Capitão :) ");
            this.Planalto         = Planalto ?? throw new System.Exception("Informe as Coordenadas do terreno, Capitão :) ");
        }
Example #2
0
        public void Mover(List <Comandos.Comando> ComandosExecutados)
        {
            if (ComandosExecutados == null)
            {
                return;
            }

            if (ComandosExecutados.Count <= 0)
            {
                return;
            }

            localizacaoatual = Comandos.ProcessarComando(Planalto, LocalizacaoAtual, ComandosExecutados);
        }
Example #3
0
        public static Localizacao ProcessarComando(Coordenadas Planalto, Localizacao LocalicaoAtual, List <Comando> ComandosExecutados)
        {
            int     x       = LocalicaoAtual.Coordenadas.x;
            int     y       = LocalicaoAtual.Coordenadas.y;
            Sentido sentido = LocalicaoAtual.Direcao;

            foreach (Comando comando in ComandosExecutados)
            {
                switch (comando)
                {
                case Comando.Avancar:
                    switch (sentido)
                    {
                    case Sentido.Sul:
                        y--;
                        break;

                    case Sentido.Norte:
                        y++;
                        break;

                    case Sentido.Leste:
                        x++;
                        break;

                    case Sentido.Oeste:
                        x--;
                        break;
                    }
                    break;

                default:
                    sentido = MudarDirecao(sentido, comando);
                    break;
                }

                y = ValidarValores(y, Planalto.y, 0);
                x = ValidarValores(x, Planalto.x, 0);
            }

            return(new Localizacao(new Coordenadas(x, y), sentido));
        }
Example #4
0
 public static Sonda EfetuarLancamento(string NomeSonda, Coordenadas Planalto, Localizacao Aterrissagem)
 {
     return(new Sonda(NomeSonda, Planalto, Aterrissagem));
 }