Exemplo n.º 1
0
 public void Ganador(Jugador jugadorlocal)
 {
     NextMatch = jugadorlocal;
 }
Exemplo n.º 2
0
 public void SetRival(Jugador jugadorlocal)
 {
     Rival = jugadorlocal;
 }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            List <Cartas> listaCartasShaman = new List <Cartas>();
            List <Cartas> listaCartas       = new List <Cartas>();
            Cartas        pichon            = new Cartas(0, 0, 10000000, "pichon");
            Cartas        dagger            = new Cartas(0, 1, 2, "Dagger");
            Cartas        wisp               = new Cartas(0, 1, 1, "Wisp");
            Cartas        murlocRaider       = new Cartas(1, 1, 2, "Murloc Raider");
            Cartas        bloodfenRaptor     = new Cartas(2, 3, 2, "Bloodfen Raptor");
            Cartas        riverCrocolisk     = new Cartas(2, 2, 3, "River CrocoLisk");
            Cartas        magmaRager         = new Cartas(3, 5, 1, "Magma Rager");
            Cartas        chillwindYeti      = new Cartas(4, 4, 5, "Chill Wind Yeti");
            Cartas        oasisSnapjaw       = new Cartas(4, 2, 7, "Oasis Snap Jaw");
            Cartas        boulderfistOgre    = new Cartas(6, 6, 7, "Boulder Fist Ogre");
            Cartas        warGolem           = new Cartas(7, 7, 7, "War Golem");
            Cartas        coreHound          = new Cartas(7, 9, 5, "Core Hound");
            Cartas        theCoin            = new Cartas(0, 0, 0, "the coin");
            Cartas        reclutaManoDePlata = new Cartas(0, 1, 1, "Esbirro de Plata");
            Cartas        healingTotem       = new Cartas(0, 0, 2, "Healing Totem");
            Cartas        searingTotem       = new Cartas(0, 1, 1, "Searing Totem");
            Cartas        stoneclawTotem     = new Cartas(0, 0, 2, "StoneClaw Totem");
            Cartas        wrathOfAirTotem    = new Cartas(0, 0, 2, "Wrath Of Air Totem");

            listaCartasShaman.Add(healingTotem);
            listaCartasShaman.Add(searingTotem);
            listaCartasShaman.Add(stoneclawTotem);
            listaCartasShaman.Add(wrathOfAirTotem);
            listaCartas.Add(wisp);
            listaCartas.Add(wisp);
            listaCartas.Add(wisp);
            listaCartas.Add(murlocRaider);
            listaCartas.Add(murlocRaider);
            listaCartas.Add(murlocRaider);
            listaCartas.Add(bloodfenRaptor);
            listaCartas.Add(bloodfenRaptor);
            listaCartas.Add(bloodfenRaptor);
            listaCartas.Add(riverCrocolisk);
            listaCartas.Add(riverCrocolisk);
            listaCartas.Add(riverCrocolisk);
            listaCartas.Add(magmaRager);
            listaCartas.Add(magmaRager);
            listaCartas.Add(magmaRager);
            listaCartas.Add(chillwindYeti);
            listaCartas.Add(chillwindYeti);
            listaCartas.Add(chillwindYeti);
            listaCartas.Add(oasisSnapjaw);
            listaCartas.Add(oasisSnapjaw);
            listaCartas.Add(oasisSnapjaw);
            listaCartas.Add(boulderfistOgre);
            listaCartas.Add(boulderfistOgre);
            listaCartas.Add(boulderfistOgre);
            listaCartas.Add(warGolem);
            listaCartas.Add(warGolem);
            listaCartas.Add(warGolem);
            listaCartas.Add(coreHound);
            listaCartas.Add(coreHound);
            listaCartas.Add(coreHound);

            //Nombres
            Console.WriteLine("Bienvenido a HearthStone, ingresen sus nombres: ");
            Console.WriteLine("Jugador 1:");
            string name1 = Console.ReadLine();

            Console.WriteLine("Jugador 2:");
            string name2 = Console.ReadLine();

            Console.WriteLine(name1 + ", ¿Que heroe quieres ser?");
            string heroe1 = Console.ReadLine();

            while (heroe1 != "Warrior" && heroe1 != "rogue" && heroe1 != "Hunter" && heroe1 != "hunter" && heroe1 != "Druid" && heroe1 != "druid" && heroe1 != "shaman" && heroe1 != "paladin")
            {
                Console.WriteLine("Por favor ingrese un heroe valido");
                heroe1 = Console.ReadLine();
            }
            Console.WriteLine(name2 + ", ¿Que heroe quieres ser?");
            string heroe2 = Console.ReadLine();

            while (heroe2 != "Warrior" && heroe2 != "warrior" && heroe2 != "Hunter" && heroe2 != "hunter")
            {
                Console.WriteLine("Por favor ingrese un heroe valido");
                heroe2 = Console.ReadLine();
            }
            Console.WriteLine(name1 + " eres " + heroe1);
            Console.WriteLine(name2 + " eres " + heroe2);
            //Mazos
            List <Cartas> Mazo1 = listaCartas;
            List <Cartas> Mazo2 = listaCartas;

            //Manos
            List <Cartas> Mano1 = new List <Cartas>();
            List <Cartas> Mano2 = new List <Cartas>();

            //Tableros
            List <Cartas> TableroJugador1 = new List <Cartas>();
            List <Cartas> TableroJugador2 = new List <Cartas>();

            //Damages
            int damage1 = 0;
            int damage2 = 0;

            Jugador Jugador1 = new Jugador(0, 30, 0, Mano1, Mazo1, name1, TableroJugador1, heroe1, damage1, pichon);
            Jugador Jugador2 = new Jugador(0, 30, 0, Mano2, Mazo2, name2, TableroJugador2, heroe2, damage2, pichon);

            Console.WriteLine("Comienza el juego");
            bool   condicionJuego = true;
            Random rmd            = new Random();
            int    turno          = rmd.Next(0, 2);


            Cartas.crearMano(Jugador1, Jugador2, turno, theCoin);
            bool cambiarCartas1 = true;
            bool cambiarCartas2 = true;

            while (condicionJuego)
            {
                if (turno == 0)
                {
                    while (cambiarCartas1)
                    {
                        for (int i = 0; i < Jugador1.mano.Count; i++)
                        {
                            Console.WriteLine("[" + i + "]" + Jugador1.mano[i].nombre + "|| costo: [" + Jugador1.mano[i].costo + "]"); //Mostramos lo que tenemos en la mano
                        }
                        Console.WriteLine(Jugador1.nombre + ",  ¿Quiere cambiar cartas? (si o no)");
                        string a = Console.ReadLine();

                        while (a == "si" || a == "Si")
                        {
                            for (int i = 0; i < Jugador1.mano.Count; i++)
                            {
                                Console.WriteLine("[" + i + "]" + Jugador1.mano[i].nombre + "|| costo: [" + Jugador1.mano[i].costo + "]"); //Mostramos lo que tenemos en la mano
                            }
                            Console.WriteLine("Elija la carta que quiere cambiar, 11 si no quiere cambiar");
                            string c = Console.ReadLine();
                            if (c == "11")
                            {
                                a = "no";
                                cambiarCartas1 = false;
                            }
                            else
                            {
                                int c1 = Int32.Parse(c);
                                Jugador1.mazo.Add(Jugador1.mano[c1]);
                                Jugador1.mano.Remove(Jugador1.mano[c1]);
                                int r = rmd.Next(Jugador1.mazo.Count);
                                Jugador1.mano.Add(Jugador1.mazo[r]);
                                Mazo1.Remove(Mazo1[r]);
                            }
                        }
                        cambiarCartas1 = false;
                    }
                    int rara1 = rmd.Next(Jugador1.mazo.Count);
                    Cartas.Draw(Jugador1.mano, Jugador1.mazo, rara1);
                    Jugador1.ManaGrowth();                                                  //Jugador gana 1 de mana al comienzo del turno.
                    bool          condicionTurno     = true;                                //Para mantenerse en el menu.
                    List <Cartas> posiblesAtacantes1 = new List <Cartas>(Jugador1.tablero); //Asi la misma carta no puede atacar dos veces.
                    int           manaTurno          = 0;
                    manaTurno += Jugador1.mana;                                             //Mana a la que se le puede restar, si no partiria de 0 practicamente todas las rondas.
                    Console.WriteLine("Turno de " + Jugador1.nombre);
                    bool condicionPoder = true;                                             //Para poder usar solo una vez el poder por turno
                    while (condicionTurno)
                    {
                        Console.WriteLine(Jugador1.nombre + " tienes " + manaTurno + " puntos de mana.");
                        Console.WriteLine("¿Que desea hacer?");
                        Console.WriteLine("(1) Jugar una carta de la mano");
                        if (posiblesAtacantes1.Count >= 1 || Jugador1.arma.nombre == "dagger" || Jugador1.damage > 0)
                        {
                            Console.WriteLine("(2) Atacar");
                        }
                        if (manaTurno >= 2 && condicionPoder)
                        {
                            Console.WriteLine("(3) Usar el poder");
                        }
                        Console.WriteLine("(4) Terminar el turno");
                        string decision1 = Console.ReadLine(); //Que es lo que hara el jugador.

                        if (decision1 == "1")                  //Jugar una carta
                        {
                            for (int i = 0; i < Jugador1.mano.Count; i++)
                            {
                                Console.WriteLine("[" + i + "]" + Jugador1.mano[i].nombre + "||" + " costo " + "[" + Jugador1.mano[i].costo + "]" + " vida " + "[" + Jugador1.mano[i].vida + "]" + "vida" + "[" + Jugador1.mano[i].ataque + "]"); //Mostramos lo que tenemos en la mano
                            }
                            decision1 = "0";
                            while (decision1 == "0")
                            {
                                Console.WriteLine("Elija el numero de carta que desea jugar, tipe 11 si quiere volver al menú");
                                string numeroDeCartaString1 = Console.ReadLine();                //Numero de carta que quiere jugar, parte desde el 0
                                int    numeroDeCartaInt1    = Int32.Parse(numeroDeCartaString1); //Numero a int
                                if (numeroDeCartaInt1 == 11)
                                {
                                    decision1 = "1";
                                }
                                else if (Mano1[numeroDeCartaInt1].nombre == "the coin")
                                {
                                    manaTurno += 1;
                                    Mano1.Remove(Mano1[numeroDeCartaInt1]);
                                    Console.WriteLine("TheCoin ha sido implementada");
                                }
                                else
                                {
                                    if (TableroJugador1.Count < 7)
                                    {
                                        if (manaTurno >= Jugador1.mano[numeroDeCartaInt1].costo)
                                        {
                                            manaTurno -= Jugador1.mano[numeroDeCartaInt1].costo;
                                            Jugador1.tablero.Add(Jugador1.mano[numeroDeCartaInt1]);
                                            Jugador1.mano.Remove(Jugador1.mano[numeroDeCartaInt1]);
                                            decision1 = "1";
                                        }
                                        else
                                        {
                                            Console.WriteLine("No hay suficiente mana");
                                            decision1 = "1";
                                        }
                                    }
                                    else
                                    {
                                        Console.WriteLine("Ya hay 7 cartas en la mesa");
                                    }
                                }
                            }
                        }
                        else if (decision1 == "2") //Atacar con una creatura o Heroe
                        {
                            for (int i = 0; i < posiblesAtacantes1.Count; i++)
                            {
                                Console.WriteLine("[" + i + "]" + posiblesAtacantes1[i].nombre + "||" + " vida: " + "[" + posiblesAtacantes1[i].vida + "]" + " ataque: " + "[" + posiblesAtacantes1[i].ataque + "]");
                            }
                            decision1 = "0";
                            Console.WriteLine("[10]" + "[" + Jugador1.nombre + "]" + "[" + Jugador1.arma.ataque + Jugador1.damage + "]");
                            while (decision1 == "0")
                            {
                                Console.WriteLine("Elija el numero con que desee que ataque, tipe 11 para volver al menú.");
                                string cartaElegidaString1 = Console.ReadLine();
                                int    cartaElegidaInt1    = Int32.Parse(cartaElegidaString1); // Hasta aca se tiene la carta que va a atacar, falta decidir a quien se va a atacar
                                if (cartaElegidaInt1 == 11)
                                {
                                    decision1 = "2";
                                }
                                else if (cartaElegidaInt1 == 10)
                                {
                                    Console.WriteLine("¿A quien desea a atacar?"); // primero vemos a quien se ataca, si se ataca a carta o a Jugador
                                    Console.WriteLine("(1) Jugador oponente");
                                    Console.WriteLine("(2) Alguna carta del oponente");
                                    string target1 = Console.ReadLine();
                                    int    target  = Int32.Parse(target1);
                                    if (target == 1)
                                    {
                                        Jugador2.vida      -= Jugador2.arma.ataque;
                                        Jugador1.arma.vida -= 1;
                                        if (Jugador2.vida <= 0)
                                        {
                                            Console.WriteLine("Juego terminado gano: " + Jugador1.nombre);
                                            condicionJuego = false;
                                        }
                                        if (Jugador1.arma == dagger)
                                        {
                                            dagger.vida -= 1;
                                            if (dagger.vida == 0)
                                            {
                                                Jugador1.arma = pichon;
                                            }
                                        }
                                    }
                                    else if (target == 2)
                                    {
                                        Console.WriteLine("Indique a cual carta del oponente desea atacar");
                                        for (int i = 0; i < Jugador2.tablero.Count; i++)
                                        {
                                            Console.WriteLine("[" + i + "]" + Jugador2.tablero[i].nombre + "|| vida: " + "[" + Jugador2.tablero[i].vida + "]" + " ataque: " + "[" + Jugador1.tablero[i].ataque + "]");
                                        }
                                        string numeroDeTarget1    = Console.ReadLine();
                                        int    numeroDeTargetInt1 = Int32.Parse(numeroDeTarget1);
                                        Jugador2.tablero[numeroDeTargetInt1].vida -= Jugador1.damage + Jugador1.arma.ataque;
                                        Jugador1.vida -= Jugador2.tablero[numeroDeTargetInt1].ataque;
                                        if (Jugador1.vida <= 0)
                                        {
                                            Console.WriteLine("Juego terminado gano: " + Jugador2.nombre);
                                            condicionJuego = false;
                                        }
                                        if (Jugador1.arma == dagger)
                                        {
                                            dagger.vida -= 1;
                                            if (dagger.vida == 0)
                                            {
                                                Jugador1.arma = pichon;
                                            }
                                        }
                                        if (Jugador2.tablero[numeroDeTargetInt1].vida <= 0)
                                        {
                                            Jugador1.tablero.Remove(Jugador1.tablero[numeroDeTargetInt1]);
                                            Console.WriteLine(Jugador1.tablero[numeroDeTargetInt1].nombre + "ha muerto");
                                        }
                                        if (Jugador2.tablero[cartaElegidaInt1].vida <= 0)
                                        {
                                            Jugador2.tablero.Remove(Jugador2.tablero[cartaElegidaInt1]);
                                            Console.WriteLine(Jugador2.tablero[numeroDeTargetInt1].nombre + "ha muerto");
                                        }
                                    }
                                }
                                else
                                {
                                    Console.WriteLine("¿A quien desea a atacar?"); // primero vemos a quien se ataca, si se ataca a carta o a Jugador
                                    Console.WriteLine("(1) Jugador oponente");
                                    Console.WriteLine("(2) Alguna carta del oponente");
                                    string target1 = Console.ReadLine();
                                    int    target  = Int32.Parse(target1);

                                    if (target == 1)
                                    {
                                        Jugador1.AtacarJugador(posiblesAtacantes1, cartaElegidaInt1, Jugador2);
                                        if (Jugador2.vida <= 0)
                                        {
                                            Console.WriteLine("Juego terminado gano: " + Jugador1.nombre);
                                            condicionJuego = false;
                                        }
                                    }
                                    else if (target == 2)
                                    {
                                        Console.WriteLine("Indique a cual carta del oponente desea atacar");
                                        for (int i = 0; i < Jugador2.tablero.Count; i++)
                                        {
                                            Console.WriteLine("[" + i + "]" + Jugador2.tablero[i].nombre + "|| vida: " + "[" + Jugador2.tablero[i].vida + "]" + " ataque: " + "[" + Jugador2.tablero[i].ataque + "]");
                                        }
                                        string numeroDeTarget1    = Console.ReadLine();
                                        int    numeroDeTargetInt1 = Int32.Parse(numeroDeTarget1);
                                        Jugador1.AtacarCarta(posiblesAtacantes1, cartaElegidaInt1, Jugador2.tablero, numeroDeTargetInt1);
                                        if (Jugador1.tablero[numeroDeTargetInt1].vida <= 0)
                                        {
                                            Jugador1.tablero.Remove(Jugador1.tablero[numeroDeTargetInt1]);
                                            Console.WriteLine(Jugador1.tablero[numeroDeTargetInt1].nombre + "ha muerto");
                                        }
                                        if (Jugador2.tablero[cartaElegidaInt1].vida <= 0)
                                        {
                                            Jugador2.tablero.Remove(Jugador2.tablero[cartaElegidaInt1]);
                                            Console.WriteLine(Jugador2.tablero[numeroDeTargetInt1].nombre + "ha muerto");
                                        }
                                    }
                                    decision1 = "2";
                                }
                            }
                        }
                        else if (decision1 == "3") //Poder del guerrero.
                        {
                            Console.WriteLine("Tipe 11 para ir al menu principal, de lo contrario procedemos a usar el poder");
                            string hola = Console.ReadLine();
                            if (hola == "11")
                            {
                                decision1 = "0";
                            }
                            else
                            {
                                Jugador1.UsarPoder(Jugador1, Jugador2, reclutaManoDePlata, listaCartasShaman, dagger);
                                manaTurno     -= 2;
                                Jugador1.arma  = dagger;
                                condicionPoder = false;
                                if (Jugador2.vida <= 0)
                                {
                                    Console.WriteLine("Juego terminado gano: " + Jugador1.nombre);
                                    condicionJuego = false;
                                }
                            }
                        }
                        else if (decision1 == "4")//Terminar Turno
                        {
                            condicionTurno = false;
                            turno          = 1;
                            if (Jugador1.mano.Count < 10)
                            {
                                int r = 0;
                                Jugador1.mano.Add(Jugador1.mazo[r]);
                                Jugador1.mazo.Remove(Jugador1.mazo[r]);
                            }
                        }
                    }
                }

                else if (turno == 1)
                {
                    while (cambiarCartas2)
                    {
                        for (int i = 0; i < Jugador2.mano.Count; i++)
                        {
                            Console.WriteLine("[" + i + "]" + Jugador2.mano[i].nombre + "|| costo: [" + Jugador2.mano[i].costo + "]"); //Mostramos lo que tenemos en la mano
                        }
                        Console.WriteLine(Jugador2.nombre + ",  ¿Quiere cambiar cartas? (si o no)");
                        string a = Console.ReadLine();

                        while (a == "si" || a == "Si")
                        {
                            for (int i = 0; i < Jugador2.mano.Count; i++)
                            {
                                Console.WriteLine("[" + i + "]" + Jugador2.mano[i].nombre + "|| costo: [" + Jugador2.mano[i].costo + "]"); //Mostramos lo que tenemos en la mano
                            }
                            Console.WriteLine("Elija la carta que quiere cambiar, 11 si no quiere cambiar");
                            string c = Console.ReadLine();
                            if (c == "11")
                            {
                                a = "no";
                                cambiarCartas2 = false;
                            }
                            else
                            {
                                int c1 = Int32.Parse(c);
                                Jugador2.mazo.Add(Jugador2.mano[c1]);
                                Jugador2.mano.Remove(Jugador2.mano[c1]);
                                int r = rmd.Next(Jugador2.mazo.Count);
                                Jugador2.mano.Add(Jugador2.mazo[r]);
                                Mazo2.Remove(Mazo2[r]);
                            }
                        }
                        cambiarCartas2 = false;
                    }
                    int rara2 = rmd.Next(Jugador2.mazo.Count);
                    Cartas.Draw(Jugador2.mano, Jugador2.mazo, rara2);
                    Jugador2.ManaGrowth();                                                   //Jugador gana 1 de mana al comienzo del turno.
                    bool          condicionTurno     = true;                                 //Para mantenerse en el menu.
                    List <Cartas> posiblesAtacantes1 = new List <Cartas>(Jugador2.tablero);; //Asi la misma carta no puede atacar dos veces.
                    int           manaTurno          = 0;
                    manaTurno += Jugador2.mana;                                              //Mana a la que se le puede restar, si no partiria de 0 practicamente todas las rondas.
                    Console.WriteLine("Turno de " + Jugador2.nombre);
                    bool condicionPoder = true;                                              //Para poder usar solo una vez el poder por turno
                    while (condicionTurno)
                    {
                        Console.WriteLine(Jugador2.nombre + " tienes " + manaTurno + " puntos de mana.");
                        Console.WriteLine("¿Que desea hacer?");
                        Console.WriteLine("(1) Jugar una carta de la mano");

                        if (posiblesAtacantes1.Count >= 1 || Jugador2.arma.nombre == "dagger" || Jugador2.damage > 0)
                        {
                            Console.WriteLine("(2) Atacar");
                        }
                        if (manaTurno >= 2 && condicionPoder)
                        {
                            Console.WriteLine("(3) Usar el poder");
                        }
                        Console.WriteLine("(4) Terminar el turno");
                        string decision1 = Console.ReadLine(); //Que es lo que hara el jugador.

                        if (decision1 == "1")                  //Jugar una carta
                        {
                            for (int i = 0; i < Jugador2.mano.Count; i++)
                            {
                                Console.WriteLine("[" + i + "]" + Jugador2.mano[i].nombre + "||" + " costo " + "[" + Jugador2.mano[i].costo + "]" + " vida " + "[" + Jugador2.mano[i].vida + "]" + "vida" + "[" + Jugador2.mano[i].ataque + "]"); //Mostramos lo que tenemos en la mano
                            }
                            decision1 = "0";
                            while (decision1 == "0")
                            {
                                Console.WriteLine("Elija el numero de carta que desea jugar, tipe 11 si quiere volver al menú");
                                string numeroDeCartaString1 = Console.ReadLine();                //Numero de carta que quiere jugar, parte desde el 0
                                int    numeroDeCartaInt1    = Int32.Parse(numeroDeCartaString1); //Numero a int
                                if (numeroDeCartaInt1 == 11)
                                {
                                    decision1 = "1";
                                }
                                else if (Mano2[numeroDeCartaInt1].nombre == "the coin")
                                {
                                    manaTurno += 1;
                                    Mano2.Remove(Mano2[numeroDeCartaInt1]);
                                    Console.WriteLine("TheCoin ha sido implementada");
                                }
                                else
                                {
                                    if (TableroJugador2.Count < 7)
                                    {
                                        if (manaTurno >= Jugador2.mano[numeroDeCartaInt1].costo)
                                        {
                                            manaTurno -= Jugador2.mano[numeroDeCartaInt1].costo;
                                            Jugador2.tablero.Add(Jugador2.mano[numeroDeCartaInt1]);
                                            Jugador2.mano.Remove(Jugador2.mano[numeroDeCartaInt1]);
                                            decision1 = "1";
                                        }
                                        else
                                        {
                                            Console.WriteLine("No hay suficiente mana");
                                            decision1 = "1";
                                        }
                                    }
                                    else
                                    {
                                        Console.WriteLine("Ya hay 7 cartas en la mesa");
                                    }
                                }
                            }
                        }
                        else if (decision1 == "2") //Atacar con una creatura o Heroe
                        {
                            for (int i = 0; i < posiblesAtacantes1.Count; i++)
                            {
                                Console.WriteLine("[" + i + "]" + posiblesAtacantes1[i].nombre + "||" + " vida: " + "[" + posiblesAtacantes1[i].vida + "]" + " ataque: " + "[" + posiblesAtacantes1[i].ataque + "]");
                            }
                            decision1 = "0";
                            Console.WriteLine("[10]" + "[" + Jugador2.nombre + "]" + "[" + Jugador2.arma.ataque + Jugador2.damage + "]");
                            while (decision1 == "0")
                            {
                                Console.WriteLine("Elija el numero con que desee que ataque, tipe 11 para volver al menú.");
                                string cartaElegidaString1 = Console.ReadLine();
                                int    cartaElegidaInt1    = Int32.Parse(cartaElegidaString1); // Hasta aca se tiene la carta que va a atacar, falta decidir a quien se va a atacar
                                if (cartaElegidaInt1 == 11)
                                {
                                    decision1 = "2";
                                }
                                else if (cartaElegidaInt1 == 10)
                                {
                                    Console.WriteLine("¿A quien desea a atacar?"); // primero vemos a quien se ataca, si se ataca a carta o a Jugador
                                    Console.WriteLine("(1) Jugador oponente");
                                    Console.WriteLine("(2) Alguna carta del oponente");
                                    string target1 = Console.ReadLine();
                                    int    target  = Int32.Parse(target1);
                                    if (target == 1)
                                    {
                                        Jugador1.vida      -= Jugador2.arma.ataque;
                                        Jugador2.arma.vida -= 1;
                                        if (Jugador2.arma == dagger)
                                        {
                                            dagger.vida -= 1;
                                            if (dagger.vida == 0)
                                            {
                                                Jugador2.arma = pichon;
                                            }
                                        }
                                        if (Jugador1.vida <= 0)
                                        {
                                            Console.WriteLine("Juego terminado gano: " + Jugador2.nombre);
                                            condicionJuego = false;
                                        }
                                    }
                                    else if (target == 2)
                                    {
                                        Console.WriteLine("Indique a cual carta del oponente desea atacar");
                                        for (int i = 0; i < Jugador1.tablero.Count; i++)
                                        {
                                            Console.WriteLine("[" + i + "]" + Jugador1.tablero[i].nombre + "|| vida: " + "[" + Jugador1.tablero[i].vida + "]" + " ataque: " + "[" + Jugador1.tablero[i].ataque + "]");
                                        }
                                        string numeroDeTarget1    = Console.ReadLine();
                                        int    numeroDeTargetInt1 = Int32.Parse(numeroDeTarget1);
                                        Jugador1.tablero[numeroDeTargetInt1].vida -= Jugador2.damage + Jugador2.arma.ataque;
                                        Jugador2.vida -= Jugador1.tablero[numeroDeTargetInt1].ataque;
                                        if (Jugador1.tablero[numeroDeTargetInt1].vida <= 0)
                                        {
                                            Jugador1.tablero.Remove(Jugador1.tablero[numeroDeTargetInt1]);
                                            Console.WriteLine(Jugador1.tablero[numeroDeTargetInt1].nombre + "ha muerto");
                                        }
                                        if (Jugador2.tablero[cartaElegidaInt1].vida <= 0)
                                        {
                                            Jugador2.tablero.Remove(Jugador2.tablero[cartaElegidaInt1]);
                                            Console.WriteLine(Jugador2.tablero[numeroDeTargetInt1].nombre + "ha muerto");
                                        }
                                    }
                                }
                                else
                                {
                                    Console.WriteLine("¿A quien desea a atacar?"); // primero vemos a quien se ataca, si se ataca a carta o a Jugador
                                    Console.WriteLine("(1) Jugador oponente");
                                    Console.WriteLine("(2) Alguna carta del oponente");
                                    string target1 = Console.ReadLine();
                                    int    target  = Int32.Parse(target1);

                                    if (target == 1)
                                    {
                                        Jugador2.AtacarJugador(posiblesAtacantes1, cartaElegidaInt1, Jugador1);
                                        if (Jugador1.vida <= 0)
                                        {
                                            Console.WriteLine("Juego terminado gano: " + Jugador2.nombre);
                                            condicionJuego = false;
                                        }
                                    }
                                    else if (target == 2)
                                    {
                                        Console.WriteLine("Indique a cual carta del oponente desea atacar");
                                        for (int i = 0; i < Jugador1.tablero.Count; i++)
                                        {
                                            Console.WriteLine("[" + i + "]" + Jugador1.tablero[i].nombre + "|| vida: " + "[" + Jugador1.tablero[i].vida + "]" + " ataque: " + "[" + Jugador1.tablero[i].ataque + "]");
                                        }
                                        string numeroDeTarget1    = Console.ReadLine();
                                        int    numeroDeTargetInt1 = Int32.Parse(numeroDeTarget1);
                                        Jugador2.AtacarCarta(posiblesAtacantes1, cartaElegidaInt1, Jugador1.tablero, numeroDeTargetInt1);
                                        if (Jugador1.tablero[numeroDeTargetInt1].vida <= 0)
                                        {
                                            Jugador1.tablero.Remove(Jugador1.tablero[numeroDeTargetInt1]);
                                            Console.WriteLine(Jugador1.tablero[numeroDeTargetInt1].nombre + "ha muerto");
                                        }
                                        if (Jugador2.tablero[cartaElegidaInt1].vida <= 0)
                                        {
                                            Jugador2.tablero.Remove(Jugador2.tablero[cartaElegidaInt1]);
                                            Console.WriteLine(Jugador2.tablero[numeroDeTargetInt1].nombre + "ha muerto");
                                        }
                                    }
                                    decision1 = "2";
                                }
                            }
                        }
                        else if (decision1 == "3") //Poder del guerrero.
                        {
                            Console.WriteLine("Tipe 11 para ir al menu principal, de lo contrario procedemos a usar el poder");
                            string hola = Console.ReadLine();
                            if (hola == "11")
                            {
                                decision1 = "0";
                            }
                            else
                            {
                                Jugador2.UsarPoder(Jugador2, Jugador1, reclutaManoDePlata, listaCartasShaman, dagger);
                                manaTurno     -= 2;
                                condicionPoder = false;
                                Jugador2.arma  = dagger;
                                if (Jugador1.vida <= 0)
                                {
                                    Console.WriteLine("Juego terminado gano: " + Jugador2.nombre);
                                    condicionJuego = false;
                                }
                            }
                        }
                        else if (decision1 == "4")//Terminar Turno
                        {
                            condicionTurno = false;
                            turno          = 0;
                            if (Jugador1.mano.Count < 10)
                            {
                                int r = 0;
                                Jugador2.mano.Add(Jugador1.mazo[r]);
                                Jugador2.mazo.Remove(Jugador1.mazo[r]);
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 4
0
 public void AtacarJugador(List <Cartas> posiblesAtacantes, int cartaElegida, Jugador jugador)
 {
     jugador.vida -= posiblesAtacantes[cartaElegida].ataque;
 }
Exemplo n.º 5
0
        static void Main(string[] args)
        {
            Console.WriteLine("Bienvenido al tateti para que fausto pruebe el lenguaje de programación c#");
            Console.WriteLine();
            Console.WriteLine("¿Quieres iniciar una partida?");
            Console.WriteLine("si o no, fácil");

            bool comenzar = false;

            while (!comenzar)
            {
                string entrada = Console.ReadLine().ToLower().Trim();
                if (entrada.Equals("si"))
                {
                    comenzar = true;
                    Console.Clear();
                }
                else if (entrada.Equals("no"))
                {
                    Environment.Exit(0);
                }
                else
                {
                    Console.Clear();
                    Console.WriteLine("Si o No, no es tan dificil bro");
                    Console.WriteLine("Dale mandale de nuevo, vos podés");
                }
            }

            Console.WriteLine("¿Quieres jugar de a 2 o contra la maquina?");
            Console.WriteLine("Ingresa Maquina o 2 segun quieras");

            comenzar = false;
            while (!comenzar)
            {
                string entrada = Console.ReadLine().ToLower().Trim();
                if (entrada.Equals("maquina"))
                {
                    Console.Clear();
                    Console.WriteLine("jajajajaja te pensas que se hacer una IA para que juegue contra vos dale contate otra, largando de a 2");
                    Console.WriteLine();
                    Console.WriteLine();
                    comenzar = true;
                }
                else if (entrada.Equals("2"))
                {
                    Console.Clear();
                    Console.WriteLine("Dale maquinola largando");
                    comenzar = true;
                }
                else
                {
                    Console.WriteLine("Dale man poneme una de las 2 opciones no seas tan trolo");
                }
            }

            //Registro de datos

            string nombre;
            Ficha  ficha;

            //Jugador 1
            Console.Write("jugador1 ingresa tu nombre: ");
            nombre = Console.ReadLine();
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("Si quieres ser el O ingresa 1, si quieres la X, 2: ");
            ficha = (Ficha)int.Parse(Console.ReadLine());
            Jugador jugador1 = new Jugador(nombre, ficha);

            Console.Clear();

            //Jugador 2
            Console.Write("jugador2 ingresa tu nombre: ");
            nombre = Console.ReadLine();
            if (ficha.Equals(Ficha.O))
            {
                ficha = Ficha.X;
            }
            else
            {
                ficha = Ficha.O;
            }
            Jugador jugador2 = new Jugador(nombre, ficha);

            Console.Clear();

            bool    ganador         = false;
            bool    empate          = false;
            Jugador jugador_ganador = null;
            Tablero tablero         = new Tablero();

            Console.WriteLine("El nombre del jugador 1 es: " + jugador1.Nombre);
            Console.WriteLine("La ficha asignada es: " + jugador1.Ficha);
            Console.WriteLine();
            Console.WriteLine("El nombre del jugador 2 es: " + jugador2.Nombre);
            Console.WriteLine("La ficha asignada es: " + jugador2.Ficha);

            Console.WriteLine();
            Console.WriteLine();

            Console.WriteLine("Para colocar la ficha ingresa la posicion que figura en el tablero");

            Console.WriteLine();
            Console.WriteLine();

            bool validar = true;

            while (!ganador || !empate)
            {
                //Turno jugador 1
                do
                {
                    tablero.imprimirTablero();
                    Console.Write("{0} ingresa una posición: ", jugador1.Nombre);
                    if (!tablero.jugar(jugador1.Ficha, Console.ReadLine()))
                    {
                        Console.Clear();
                        Console.WriteLine("La posicion esta ocupada");
                        Console.WriteLine();
                        Console.WriteLine();
                        validar = false;
                    }
                } while (!validar);

                if (tablero.hayGanador())
                {
                    ganador         = true;
                    jugador_ganador = jugador1;
                    break;
                }
                if (tablero.hayEmpate())
                {
                    empate = true;
                    break;
                }
                Console.Clear();

                //Turno jugador 2
                do
                {
                    tablero.imprimirTablero();
                    Console.Write("{0} ingresa una posición: ", jugador2.Nombre);
                    if (!tablero.jugar(jugador2.Ficha, Console.ReadLine()))
                    {
                        Console.Clear();
                        Console.WriteLine("La posicion esta ocupada");
                        Console.WriteLine();
                        Console.WriteLine();
                        validar = false;
                    }
                } while (!validar);

                if (tablero.hayGanador())
                {
                    ganador         = true;
                    jugador_ganador = jugador2;
                    break;
                }
                if (tablero.hayEmpate())
                {
                    empate = true;
                    break;
                }
                Console.Clear();
            }


            if (ganador)
            {
                Console.Clear();
                tablero.imprimirTablero();
                Console.WriteLine("Felicidades {0}, ganaste", jugador_ganador.Nombre);
            }
            else
            {
                Console.Clear();
                tablero.imprimirTablero();
                Console.WriteLine("Empate, unos mancos");
            }
        }