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); }
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); }
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; }
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); }
private static bool ValidarEntrada(Goku goku) { if (goku == null || goku.Magias == null || goku.Magias.Count == 0) { return(true); } else { return(false); } }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
public void TesteSucesso() { Goku.Goku goku = new Goku.Goku(); }