static void SondasIniciadas() { while (true) { Console.ForegroundColor = ConsoleColor.DarkRed; Console.WriteLine("Digite o nome de uma sonda + ',' (Movimentos) Exemplo Sonda1, LMRMLL - Para Movimentar Uma Sonda, Ou Exit Para Sair"); string retorno = Console.ReadLine(); if (retorno.ToLower() == "exit") { return; } string[] valores = retorno.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); if (valores.Length < 2) { continue; } string nome = valores[0]; string movimentos = valores[1]; Sonda sondaselecionada = sondas.Where(c => c.NomeSonda == nome)?.FirstOrDefault(); if (sondaselecionada == null) { Console.WriteLine("Sonda Não Encontrada !"); continue; } List <Comandos.Comando> comandosexecutados = new List <Comandos.Comando>(); foreach (char movs in movimentos) { switch (movs) { case 'M': comandosexecutados.Add(Comandos.Comando.Avancar); break; case 'L': comandosexecutados.Add(Comandos.Comando.Esquerda); break; case 'R': comandosexecutados.Add(Comandos.Comando.Direita); break; } } sondaselecionada.Mover(comandosexecutados); Console.ForegroundColor = ConsoleColor.DarkGreen; Console.WriteLine(sondaselecionada.Status()); } }
public void Teste_L_M_L_M_L_M_L_M_M() { Sonda sonda = IniciarSonda(); var posicaoInicial = new PosicaoXY(1, 2); var posicaoFinal = new PosicaoXY(1, 3); sonda.IniciarPercurso(posicaoInicial, eDirecao.Norte); //L M L M L M L M M sonda.Virar(eDirecaoMovimento.Esquerda); sonda.Mover(); sonda.Virar(eDirecaoMovimento.Esquerda); sonda.Mover(); sonda.Virar(eDirecaoMovimento.Esquerda); sonda.Mover(); sonda.Virar(eDirecaoMovimento.Esquerda); sonda.Mover(); sonda.Mover(); Assert.Equal(posicaoFinal, sonda.PosicaoAtual); Assert.Equal(eDirecao.Norte, sonda.DirecaoAtual); }
public void Teste_M_M_R_M_M_R_M_R_R_M() { Sonda sonda = IniciarSonda(); var posicaoInicial = new PosicaoXY(3, 3); var posicaoFinal = new PosicaoXY(5, 1); sonda.IniciarPercurso(posicaoInicial, eDirecao.Leste); //M_M_R_M_M_R_M_R_R_M sonda.Mover(); sonda.Mover(); sonda.Virar(eDirecaoMovimento.Direita); sonda.Mover(); sonda.Mover(); sonda.Virar(eDirecaoMovimento.Direita); sonda.Mover(); sonda.Virar(eDirecaoMovimento.Direita); sonda.Virar(eDirecaoMovimento.Direita); sonda.Mover(); Assert.Equal(posicaoFinal, sonda.PosicaoAtual); Assert.Equal(eDirecao.Leste, sonda.DirecaoAtual); }