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; } }
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; } }