コード例 #1
0
        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());
            }
        }
コード例 #2
0
ファイル: SondaTest.cs プロジェクト: Mbaptista2/SondaEspacial
        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);
        }
コード例 #3
0
ファイル: SondaTest.cs プロジェクト: Mbaptista2/SondaEspacial
        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);
        }