Example #1
0
        public void TesteErro1()
        {
            Goku.Goku goku = new Goku.Goku();

            Monstro        monstro      = new Monstro(null, 1000);
            List <Monstro> listaMonstro = new List <Monstro>();

            listaMonstro.Add(monstro);
            int melhorKi = 0;

            CasoDeTeste casoDeTeste = new CasoDeTeste(3, 1, 0, 1);

            casoDeTeste.Goku = goku;
            casoDeTeste.Saloes.Add(new Salao(1, listaMonstro));

            int[,] tabela = Estruturas.PreencherTabelaDinamica(casoDeTeste);
            casoDeTeste.Saloes.ForEach(s =>
            {
                s.Monstros.ForEach(m =>
                {
                    m.CombaterMonstroDinamico(tabela, out melhorKi);
                });
            });

            Assert.AreEqual(melhorKi, -1);
        }
Example #2
0
        public void TesteSucesso1()
        {
            List <Magia> magias = new List <Magia>();

            magias.Add(new Magia(10, 100));
            magias.Add(new Magia(15, 200));
            magias.Add(new Magia(20, 250));
            magias.Add(new Magia(25, 300));
            magias.Add(new Magia(30, 350));

            Goku.Goku goku = new Goku.Goku(magias);

            Monstro        monstro      = new Monstro(null, 800);
            List <Monstro> listaMonstro = new List <Monstro>();

            listaMonstro.Add(monstro);
            int melhorKi = 0;

            CasoDeTeste casoDeTeste = new CasoDeTeste(3, 1, 0, 1);

            casoDeTeste.Goku = goku;
            casoDeTeste.Saloes.Add(new Salao(1, listaMonstro));

            int[,] tabela = Estruturas.PreencherTabelaDinamica(casoDeTeste);
            casoDeTeste.Saloes.ForEach(s =>
            {
                s.Monstros.ForEach(m =>
                {
                    m.CombaterMonstroDinamico(tabela, out melhorKi);
                });
            });

            Assert.AreEqual(melhorKi, 60);
        }
Example #3
0
        public void CombaterMonstroGuloso(Goku goku, out List <Magia> melhorCombinacao, out int melhorKi)
        {
            if (ValidarEntrada(goku))
            {
                melhorCombinacao = new List <Magia>();
                melhorKi         = -1;
                return;
            }

            List <Magia> magiasOrdenadas = QuickSort.MetodoQuickSort(goku.Magias), magiasUsadas = new List <Magia>();
            int          dano = 0, i = magiasOrdenadas.Count - 1;

            while (this.Vida >= dano)
            {
                if (magiasOrdenadas[i - 1].Dano >= this.Vida)
                {
                    i--;
                }
                else
                {
                    magiasUsadas.Add(magiasOrdenadas[i]);
                    dano += magiasOrdenadas[i].Dano;
                }
            }

            melhorCombinacao = magiasUsadas;
            melhorKi         = dano;
        }
Example #4
0
        public void TesteSucesso3()
        {
            List <Magia> magias = new List <Magia>();

            magias.Add(new Magia(15, 20));
            magias.Add(new Magia(30, 35));
            magias.Add(new Magia(20, 25));
            magias.Add(new Magia(40, 45));
            magias.Add(new Magia(10, 10));
            magias.Add(new Magia(35, 40));
            magias.Add(new Magia(25, 30));
            magias.Add(new Magia(45, 50));
            magias.Add(new Magia(50, 55));
            magias.Add(new Magia(55, 60));
            magias.Add(new Magia(60, 65));
            magias.Add(new Magia(65, 70));
            magias.Add(new Magia(70, 75));
            magias.Add(new Magia(75, 80));
            magias.Add(new Magia(80, 85));
            magias.Add(new Magia(85, 90));
            magias.Add(new Magia(90, 95));
            magias.Add(new Magia(95, 100));
            magias.Add(new Magia(100, 105));
            magias.Add(new Magia(105, 110));
            magias.Add(new Magia(110, 115));
            magias.Add(new Magia(115, 120));
            magias.Add(new Magia(120, 125));
            magias.Add(new Magia(125, 130));
            magias.Add(new Magia(130, 135));
            magias.Add(new Magia(135, 140));
            magias.Add(new Magia(140, 145));
            magias.Add(new Magia(145, 150));
            magias.Add(new Magia(150, 155));
            magias.Add(new Magia(155, 160));
            magias.Add(new Magia(160, 165));

            Goku.Goku goku = new Goku.Goku(magias);

            Monstro        monstro      = new Monstro(null, 200);
            List <Monstro> listaMonstro = new List <Monstro>();

            listaMonstro.Add(monstro);
            int melhorKi = 0;

            CasoDeTeste casoDeTeste = new CasoDeTeste(3, 1, 0, 1);

            casoDeTeste.Goku = goku;
            casoDeTeste.Saloes.Add(new Salao(1, listaMonstro));

            int[,] tabela = Estruturas.PreencherTabelaDinamica(casoDeTeste);
            casoDeTeste.Saloes.ForEach(s =>
            {
                s.Monstros.ForEach(m =>
                {
                    m.CombaterMonstroDinamico(tabela, out melhorKi);
                });
            });

            Assert.AreEqual(melhorKi, 150);
        }
Example #5
0
 private static bool ValidarEntrada(Goku goku)
 {
     if (goku == null || goku.Magias == null || goku.Magias.Count == 0)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Example #6
0
 public CasoDeTeste(int NumeroMagia, int NumeroSalao, int NumeroGaleria, int NumeroMonstro)
 {
     this.NumeroMagia   = NumeroMagia;
     this.NumeroGaleria = NumeroGaleria;
     this.NumeroSalao   = NumeroSalao;
     this.NumeroMonstro = NumeroMonstro;
     this.Goku          = new Goku();
     this.Galerias      = new List <Galeria>();
     this.Saloes        = new List <Salao>();
     Saloes             = QuickSort.MetodoQuickSortSaloes(Saloes);
 }
Example #7
0
        public void TesteErro1()
        {
            Goku.Goku goku = new Goku.Goku();

            Monstro monstro = new Monstro(null, 100000);

            List <Magia> melhorCombinacao;
            int          melhorKi;

            monstro.CombaterMonstroForcaBruta(goku, out melhorCombinacao, out melhorKi);

            Assert.AreEqual(melhorKi, -1);
        }
Example #8
0
        public void TesteSucesso3()
        {
            List <Magia> magias = new List <Magia>();

            magias.Add(new Magia(15, 20));
            magias.Add(new Magia(30, 35));
            magias.Add(new Magia(20, 25));
            magias.Add(new Magia(40, 45));
            magias.Add(new Magia(10, 10));
            magias.Add(new Magia(35, 40));
            magias.Add(new Magia(25, 30));
            magias.Add(new Magia(45, 50));
            magias.Add(new Magia(50, 55));
            magias.Add(new Magia(55, 60));
            magias.Add(new Magia(60, 65));
            magias.Add(new Magia(65, 70));
            magias.Add(new Magia(70, 75));
            magias.Add(new Magia(75, 80));
            magias.Add(new Magia(80, 85));
            magias.Add(new Magia(85, 90));
            magias.Add(new Magia(90, 95));
            magias.Add(new Magia(95, 100));
            magias.Add(new Magia(100, 105));
            magias.Add(new Magia(105, 110));
            magias.Add(new Magia(110, 115));
            magias.Add(new Magia(115, 120));
            magias.Add(new Magia(120, 125));
            magias.Add(new Magia(125, 130));
            magias.Add(new Magia(130, 135));
            magias.Add(new Magia(135, 140));
            magias.Add(new Magia(140, 145));
            magias.Add(new Magia(145, 150));
            magias.Add(new Magia(150, 155));
            magias.Add(new Magia(155, 160));
            magias.Add(new Magia(160, 165));

            Goku.Goku goku = new Goku.Goku(magias);

            Monstro monstro = new Monstro(null, 200);

            List <Magia> melhorCombinacao;
            int          melhorKi;

            monstro.CombaterMonstroGuloso(goku, out melhorCombinacao, out melhorKi);

            Assert.AreEqual(melhorKi, 330);
        }
Example #9
0
        public void TesteErro2()
        {
            List <Magia> magias = new List <Magia>();

            magias.Add(new Magia(1, 100));
            magias.Add(new Magia(100, 10));

            Goku.Goku goku = new Goku.Goku(null);

            Monstro monstro = new Monstro(null, 1000);

            List <Magia> melhorCombinacao;
            int          melhorKi;

            monstro.CombaterMonstroForcaBruta(goku, out melhorCombinacao, out melhorKi);

            Assert.AreEqual(melhorKi, -1);
        }
Example #10
0
        public void TesteSucesso4()
        {
            List <Magia> magias = new List <Magia>();

            magias.Add(new Magia(1, 100));
            magias.Add(new Magia(100, 10));

            Goku.Goku goku = new Goku.Goku(magias);

            Monstro monstro = new Monstro(null, 1000);

            List <Magia> melhorCombinacao;
            int          melhorKi;

            monstro.CombaterMonstroGuloso(goku, out melhorCombinacao, out melhorKi);

            Assert.AreEqual(melhorKi, 1100);
        }
Example #11
0
        public void TesteSucesso()
        {
            List <Magia> magias = new List <Magia>();

            magias.Add(new Magia(10, 100));
            magias.Add(new Magia(15, 200));
            magias.Add(new Magia(20, 250));

            Goku.Goku goku = new Goku.Goku(magias);

            Monstro monstro = new Monstro(null, 550);

            List <Magia> melhorCombinacao;
            int          melhorKi;

            monstro.CombaterMonstroForcaBruta(goku, out melhorCombinacao, out melhorKi);

            Assert.AreEqual(melhorKi, 45);
        }
Example #12
0
        public void CombaterMonstroForcaBruta(Goku goku, out List <Magia> melhorCombinacao, out int melhorKi)
        {
            if (ValidarEntrada(goku))
            {
                melhorCombinacao = new List <Magia>();
                melhorKi         = -1;
                return;
            }
            List <Magia>         magiasOrdenadas       = QuickSort.MetodoQuickSort(goku.Magias);
            List <int>           quantidadeMagias      = new List <int>();
            List <List <Magia> > combinacaoMagias      = new List <List <Magia> >();
            List <int>           combinacaoKi          = new List <int>();
            List <string>        textoCombinacaoMagias = new List <string>();

            for (int i = 0; i < magiasOrdenadas.Count; i++)
            {
                quantidadeMagias.Add(0);
            }

            ForcaBruta(magiasOrdenadas, quantidadeMagias, combinacaoMagias, combinacaoKi, textoCombinacaoMagias);
            MelhorCombinacao(out melhorCombinacao, out melhorKi, combinacaoMagias, combinacaoKi);
        }
Example #13
0
        public void TesteSucesso2()
        {
            List <Magia> magias = new List <Magia>();

            magias.Add(new Magia(15, 200));
            magias.Add(new Magia(30, 350));
            magias.Add(new Magia(20, 250));
            magias.Add(new Magia(40, 450));
            magias.Add(new Magia(10, 100));
            magias.Add(new Magia(35, 400));
            magias.Add(new Magia(25, 300));

            Goku.Goku goku = new Goku.Goku(magias);

            Monstro monstro = new Monstro(null, 800);

            List <Magia> melhorCombinacao;
            int          melhorKi;

            monstro.CombaterMonstroGuloso(goku, out melhorCombinacao, out melhorKi);

            Assert.AreEqual(melhorKi, 900);
        }
Example #14
0
        public int Combate(Goku goku, int[,] tabelaDinamica, string metodo)
        {
            int kiNecessario = 0;

            this.Monstros.ForEach(monstro =>
            {
                int melhorKi;
                List <Magia> melhorCombinacaoMagias;
                if (metodo == "FB")
                {
                    monstro.CombaterMonstroForcaBruta(goku, out melhorCombinacaoMagias, out melhorKi);
                }
                else if (metodo == "GL")
                {
                    monstro.CombaterMonstroGuloso(goku, out melhorCombinacaoMagias, out melhorKi);
                }
                else
                {
                    monstro.CombaterMonstroDinamico(tabelaDinamica, out melhorKi);
                }
                kiNecessario += melhorKi;
            });
            return(kiNecessario);
        }
Example #15
0
 public void TesteSucesso()
 {
     Goku.Goku goku = new Goku.Goku();
 }