private void ExecutarExploracao(int sondaNumero) { Sondas sondas = new Sondas(bancoDeDados); Planalto planalto = new Planalto(); planalto.Criar(coordenada); movimentoSempreParaFrente = new MovimentoParaFrente(); var nomeDaSonda = $"Mark {sondaNumero}"; Sonda sonda = ObterSonda(sondas, nomeDaSonda); sonda.Explorar(planalto); sonda.IniciarEm(posicaoInicioalDaSonda, direcaoCardinalInicioalDaSonda); ExecutarInstrucaoDeMovimentoNaSonda(sonda, movimentoSempreParaFrente); sondas.Gravar(sonda); sondas = null; var direcao = sonda.DirecaoCardinalAtual.ToString().ToUpper().Substring(0, 1).Replace("O", "W").Replace("L", "E"); if (sondaNumero > 1) { resultado += "-"; } resultado += $"{sonda.PosicaoAtual.X} {sonda.PosicaoAtual.Y} {direcao}"; }
public void Deve_gravar_no_banco_a_exploracao_da_sonda_iniciando_em_12N_com_a_serie_de_instruncoes_LMLMLMLMM() { var posicaoDesejada = new Posicao(1, 2); Sondas sondas = new Sondas(db); sonda = new Sonda(especificacaoDeNegocio, nomeDaSonda); sonda.Explorar(planalto); sonda.IniciarEm(posicaoDesejada, DirecaoCardinal.Norte); sonda.Vire(DirecaoMovimento.Esqueda); sonda.Move(movimentoSempreParaFrente); sonda.Vire(DirecaoMovimento.Esqueda); sonda.Move(movimentoSempreParaFrente); sonda.Vire(DirecaoMovimento.Esqueda); sonda.Move(movimentoSempreParaFrente); sonda.Vire(DirecaoMovimento.Esqueda); sonda.Move(movimentoSempreParaFrente); sonda.Move(movimentoSempreParaFrente); sondas.Gravar(sonda); var posicaoEsperada = new Posicao(1, 3); Assert.AreEqual(posicaoEsperada, sonda.PosicaoAtual); Assert.AreEqual(nomeDaSonda, sonda.Nome); Assert.AreEqual(DirecaoCardinal.Norte, sonda.DirecaoCardinalAtual); }
public void Iniciar() { especificacaoDeNegocio = new EspecificacaoDeNegocio(); corretorDaProximaPosicaoDoMovimento = new CorretorDaProximaPosicaoDoMovimento(); movimentoSempreParaFrente = new MovimentoParaFrente(corretorDaProximaPosicaoDoMovimento); var coordenada = new Coordenada(5, 5); var planalto = new Planalto(); planalto.Criar(coordenada); sonda = new Sonda(especificacaoDeNegocio, "Mark I"); sonda.Explorar(planalto); }
public void Iniciar() { var coordenada = new Coordenada(5, 5); planalto = new Planalto(); planalto.Criar(coordenada); movimentoSempreParaFrente = new MovimentoParaFrente(); sonda = new Sonda("Mark I"); sonda.Explorar(planalto); }
public Sonda ObterPorId(Guid id) { var coordenada = new Coordenada(5, 5); var planalto = new Planalto(); planalto.Criar(coordenada); var movimentoSempreParaFrente = new MovimentoParaFrente(); var sonda = new Sonda("Mark I"); sonda.Explorar(planalto); var posicaoDesejada = new Posicao(1, 2); sonda.IniciarEm(posicaoDesejada, DirecaoCardinal.Norte); sonda.Vire(Direcao.Esqueda); sonda.Move(movimentoSempreParaFrente); return(sonda); }
public void Deve_fazer_a_exploracao_com_a_sonda_iniciando_em_12N_com_a_serie_de_instruncoes_LMLMLMLMM() { IMongoDatabase db = new ProvedorDeAcesso().Criar(conexaoComOBanco); Sondas sondas = new Sondas(db); sonda = new Sonda("Mark I"); sonda.Explorar(planalto); var posicaoDesejada = new Posicao(1, 2); var posicaoEsperada = new Posicao(1, 3); sonda.IniciarEm(posicaoDesejada, DirecaoCardinal.Norte); sonda.Vire(Direcao.Esqueda); sonda.Move(movimentoSempreParaFrente); sonda.Vire(Direcao.Esqueda); sonda.Move(movimentoSempreParaFrente); sondas.Gravar(sonda); var idGerado = sonda.Id; sonda = sondas.ObterPorId(idGerado); sonda.Vire(Direcao.Esqueda); sonda.Move(movimentoSempreParaFrente); sonda.Vire(Direcao.Esqueda); sonda.Move(movimentoSempreParaFrente); sonda.Move(movimentoSempreParaFrente); sondas.Gravar(sonda); var idEsperado = sonda.Id; Assert.AreNotEqual("00000000-0000-0000-0000-000000000000", sonda.Id.ToString()); Assert.AreEqual(idEsperado, idGerado); Assert.AreEqual(posicaoEsperada, sonda.PosicaoAtual); Assert.AreEqual(DirecaoCardinal.Norte, sonda.DirecaoAtual); }