示例#1
0
        private Sonda mover(Sonda sonda, Planalto planalto)
        {
            switch (sonda.direcaoAtual)
            {
            case "n":
            {
                if (sairaDoPlanaltoY(++sonda.coordenadaY, planalto))
                {
                    return(sonda);
                }
                else
                {
                    sonda.coordenadaY--;
                    return(sonda);
                }
            }

            case "s":
            {
                if (sairaDoPlanaltoY(--sonda.coordenadaY, planalto))
                {
                    return(sonda);
                }
                else
                {
                    sonda.coordenadaY++;
                    return(sonda);
                }
            }

            case "e":
            {
                if (sairaDoPlanaltoX(++sonda.coordenadaX, planalto))
                {
                    return(sonda);
                }
                else
                {
                    sonda.coordenadaX--;
                    return(sonda);
                }
            }

            case "w":
            {
                if (sairaDoPlanaltoX(--sonda.coordenadaX, planalto))
                {
                    return(sonda);
                }
                else
                {
                    sonda.coordenadaX++;
                    return(sonda);
                }
            }
            }
            return(sonda);
        }
示例#2
0
        public Sonda explorar(Sonda sonda, Planalto planalto)
        {
            if (posicaoEhValida(sonda, planalto))
            {
                comandos = transformaInstrucoesEmComandos(sonda.instrucoes);

                foreach (var comando in comandos)
                {
                    if (comando.Equals('l') || comando.Equals('r'))
                    {
                        sonda.direcaoAtual = girar(sonda.direcaoAtual, comando);
                    }
                    else if (comando.Equals('m'))
                    {
                        sonda.mover(sonda, planalto);
                    }
                }
                return(sonda);
            }
            else
            {
                return(new Sonda());
            }
        }
示例#3
0
 private bool posicaoEhValida(Sonda sonda, Planalto planalto)
 {
     return((sonda.coordenadaX - 1 <= planalto.tamanhoX && sonda.coordenadaY - 1 <= planalto.tamanhoY) ? true : false);
 }
示例#4
0
 private bool sairaDoPlanaltoY(int coordenadaY, Planalto planalto)
 {
     return((coordenadaY <= planalto.tamanhoY && coordenadaY >= 0) ? true : false);
 }
示例#5
0
 private bool sairaDoPlanaltoX(int coordenadaX, Planalto planalto)
 {
     return((coordenadaX <= planalto.tamanhoX && coordenadaX >= 0) ? true : false);
 }
示例#6
0
 public bool ehRetangular(Planalto planalto)
 {
     return((planalto.tamanhoX == planalto.tamanhoY) ? false : true);
 }