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); }
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()); } }
private bool posicaoEhValida(Sonda sonda, Planalto planalto) { return((sonda.coordenadaX - 1 <= planalto.tamanhoX && sonda.coordenadaY - 1 <= planalto.tamanhoY) ? true : false); }