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 :) "); }
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)); }
public static Sonda EfetuarLancamento(string NomeSonda, Coordenadas Planalto, Localizacao Aterrissagem) { return(new Sonda(NomeSonda, Planalto, Aterrissagem)); }