public EstrategiasDeAtaqueContexto(int tipo) { switch (tipo) { case (int)ATAQUE.Bombas: this.oAtacar = new EstrategiaBombas(); break; case (int)ATAQUE.Ojos: this.oAtacar = new EstrategiaOjitos(); break; default: this.oAtacar = null; break; } }
public void Jugar(Usuario contrincante) { mano = new List <Carta>(); AgregarCartaMano(mazo[0]); mazo.RemoveAt(0); int manaUsado = 0; mana++; while (true) { Console.Write("¿Qué quiere hacer? (ingrese una opcion)"); Console.Write("1. Usar Carta de la mano"); Console.Write("2. Usar Habilidad"); Console.Write("3. Usar Carta en juego"); Console.Write("4. Terminar turno"); Console.Write("5. Rendirse"); int opcion = Console.Read(); if (opcion == 1) //Elegir carta de la mano { Console.Write("Elije una carta a usar"); for (int i = 0; i < mano.Count; i++) { Console.WriteLine(i.ToString() + " " + mano[i]); } int opcion2 = Console.Read(); if (mana - manaUsado - mano[opcion2].VerCantidadMana() >= 0) { manaUsado = manaUsado + mano[opcion2].VerCantidadMana(); UsarCarta(mano[opcion2]); mano.RemoveAt(opcion2); } else { Console.Write("No hay suficiente mana"); } } else if (opcion == 2) //usar habilidad heroe { if (mana - manaUsado - 2 >= 0) //tiene suficiente mana para usar la habilidad { manaUsado = manaUsado + 2; heroe.IHabilidad(); } else //no tiene mana suficiente para usar habilidad { Console.Write("No hay suficiente mana"); } } else if (opcion == 3) //usar carta que esta en el juego { for (int i = 0; i < cartasJuego.Count; i++) { Console.WriteLine(i.ToString() + " " + cartasJuego[i]); } int opcion3 = Console.Read(); IAtacar atauqe = cartasJuego[opcion3]; atauqe.Ataque(); } else if (opcion == 4) //terminar el turno { Console.Write("Terminó turno"); break; } else //rendirse { } } }
public void AtacarConBombas() { this.oAtacar = new EstrategiaBombas(); }
//Genero los métodos para que implementen esa interfaz de acuerdo a la estrategia. public void AtacarConOjitos() { this.oAtacar = new EstrategiaOjitos(); }