예제 #1
0
        public void Mover()
        {
            try
            {
                switch (DirecaoAtual)
                {
                case eDirecao.Norte:
                    PosicaoAtual = new PosicaoXY(PosicaoAtual.X, PosicaoAtual.Y + 1);
                    break;

                case eDirecao.Leste:
                    PosicaoAtual = new PosicaoXY(PosicaoAtual.X + 1, PosicaoAtual.Y);
                    break;

                case eDirecao.Sul:
                    PosicaoAtual = new PosicaoXY(PosicaoAtual.X, PosicaoAtual.Y - 1);
                    break;

                case eDirecao.Oeste:
                    PosicaoAtual = new PosicaoXY(PosicaoAtual.X - 1, PosicaoAtual.Y);
                    break;
                }

                if (PosicaoAtual.X > Planalto.PosicaoX() || PosicaoAtual.Y > Planalto.PosicaoY())
                {
                    throw new Exception("Posição fora do planalto");
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #2
0
        public void IniciarPercurso(PosicaoXY posicaoInicial, eDirecao direcaoAtual)
        {
            try
            {
                if (posicaoInicial == null)
                {
                    throw new Exception("É necessário informar a posição inicial da sonda.");
                }


                if (posicaoInicial.X > Planalto.PosicaoX() || posicaoInicial.Y > Planalto.PosicaoY())
                {
                    throw new Exception("Posição fora do planalto");
                }


                PosicaoAtual = posicaoInicial;
                DirecaoAtual = direcaoAtual;
            }
            catch (Exception ex)
            {
                throw;
            }
        }