From 8132c99e761965dbdbe112fe3307f372ac5ff1fb Mon Sep 17 00:00:00 2001 From: javierhuertay Date: Tue, 9 May 2017 23:33:19 -0300 Subject: [PATCH 1/4] Update Juego.cs --- Juego.cs | 104 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 87 insertions(+), 17 deletions(-) diff --git a/Juego.cs b/Juego.cs index d2caf6d..154041e 100644 --- a/Juego.cs +++ b/Juego.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; + namespace ProyectoFinal { interface iMetodos @@ -11,8 +12,35 @@ interface iMetodos void TerminarTurno(); void Draw(); } + + class Hunter + { + int costo; + string nombre; + int damage; + void hunter(int costo,string nombre, int damage) + { + this.costo = 2; + this.nombre = nombre; + this.damage = 2; + } + } + class Warrior + { + int costo; + string nombre; + int armadura; + void warrior(int costo, string nombre, int armadura) + { + this.costo = 2; + this.nombre = nombre; + armadura += 2; + } + + } public class Jugador { + public int vida; public int mana; public List mano; @@ -30,7 +58,11 @@ public Jugador(int vida, int mana, List mano, List mazo, string } public void ManaGrowth() { - + mana += 1; + if (mana > 10) + { + mana = 10; + } } @@ -40,6 +72,9 @@ public void ManaGrowth() public class Cartas : iMetodos { + Random rnd = new Random(); + public List mano; + public List mazo; int costo; int ataque; int vida; @@ -55,6 +90,7 @@ public class Cartas : iMetodos Cartas boulderfistOgre; Cartas warGolem; Cartas coreHound; + List listaCartas = new List(); public Cartas(int costo, int ataque, int vida) { @@ -71,22 +107,54 @@ public Cartas(int costo, int ataque, int vida) boulderfistOgre = new Cartas(6, 6, 7); warGolem = new Cartas(7, 7, 7); coreHound = new Cartas(7, 9, 5); - + listaCartas.Add(wisp); + listaCartas.Add(murlocRaider); + listaCartas.Add(bloodfenRaptor); + listaCartas.Add(riverCrocolisk); + listaCartas.Add(magmaRager); + listaCartas.Add(chillwindYeti); + listaCartas.Add(oasisSnapjaw); + listaCartas.Add(boulderfistOgre); + listaCartas.Add(warGolem); + listaCartas.Add(coreHound); } - public void Atacar () + + public void Atacar() { // primero vemos a quien se ataca, si se ataca a carta o heroe // si se ataca a carta hacerlo directamente // si se ataca a heroe hacerlo a traves de la interfaz } - public void TerminarTurno () + public void TerminarTurno() { } - public void Draw () + public void Draw() { + int r = rnd.Next(listaCartas.Count); + if (mano.Count > 10) + { + mano.Add(listaCartas[r]); + } // sacar una carta al azar del mazo y ponerla en la mano al principio de cada turno. } + public void crearMazo() + { + while (mazo.Count <= 30) + { + int r = rnd.Next(listaCartas.Count); + mazo.Add(listaCartas[r]); + } + } + public void crearMano() + { + while (mano.Count <= 10) + { + int r = rnd.Next(listaCartas.Count); + mano.Add(mazo[r]); + } + + } } public class Tablero @@ -95,8 +163,8 @@ public class Tablero public List TableroJugador2; public Jugador Jugador1; public Jugador Jugador2; - - public Tablero (List TableroJugador1, List TableroJugador2, Jugador Jugador1, Jugador Jugador2) + + public Tablero(List TableroJugador1, List TableroJugador2, Jugador Jugador1, Jugador Jugador2) { this.TableroJugador1 = TableroJugador1; this.TableroJugador2 = TableroJugador2; @@ -104,7 +172,7 @@ public Tablero (List TableroJugador1, List TableroJugador2, Ju this.Jugador2 = Jugador2; } - public void JugarCartas (Jugador Jugador, List TableroJugador) + public void JugarCartas(Jugador Jugador, List TableroJugador) { } @@ -112,7 +180,7 @@ public void JugarCartas (Jugador Jugador, List TableroJugador) } - + class Program @@ -135,7 +203,7 @@ static void Main(string[] args) List Mazo1 = new List(); List Mazo2 = new List(); - List Mano1 = new List (); + List Mano1 = new List(); List Mano2 = new List(); Jugador Jugador1 = new Jugador(30, 0, Mano1, Mazo1, name1, heroe1); @@ -144,13 +212,13 @@ static void Main(string[] args) Console.WriteLine("Comienza el juego"); bool condicionJuego = true; List TableroJugador1 = new List(); - List TableroJugador2 = new List(); + List TableroJugador2 = new List(); Random rmd = new Random(); - int turno = rmd.Next (0,2); + int turno = rmd.Next(0, 2); while (condicionJuego) { - if (turno == 0) + if (turno == 0) { Jugador1.ManaGrowth(); bool condicionTurno = true; @@ -169,11 +237,11 @@ static void Main(string[] args) { for (int i = 0; i < Mano1.Count; i++) { - Console.WriteLine("["+i+"]"+Mano1 [i]); + Console.WriteLine("[" + i + "]" + Mano1[i]); } Console.WriteLine("Elija el numero de carta que desea jugar"); string numeroDeCarta = Console.ReadLine(); - int numeroDeCarta1 = int32.parse (numeroDeCarta); + int numeroDeCarta1 = int32.parse(numeroDeCarta); Tablero.JugarCartas(Jugador1, TableroJugador1); } else if (decision1 == "2") @@ -183,12 +251,14 @@ static void Main(string[] args) Console.WriteLine("[" + i + "]" + Mano1[i]); } Console.WriteLine("Elija el numero de carta que desee que ataque"); - string + } } - + } + } } } } +} From 7024ee1bc641f7d09598ed3e836f117ec89aaae5 Mon Sep 17 00:00:00 2001 From: LucasLatuz Date: Wed, 10 May 2017 14:56:34 -0300 Subject: [PATCH 2/4] Update Juego.cs --- Juego.cs | 122 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 104 insertions(+), 18 deletions(-) diff --git a/Juego.cs b/Juego.cs index 154041e..8cec6b8 100644 --- a/Juego.cs +++ b/Juego.cs @@ -10,7 +10,7 @@ interface iMetodos { void Atacar(); void TerminarTurno(); - void Draw(); + void Draw(List a, List b); } class Hunter @@ -18,7 +18,7 @@ class Hunter int costo; string nombre; int damage; - void hunter(int costo,string nombre, int damage) + void hunter(int costo, string nombre, int damage) { this.costo = 2; this.nombre = nombre; @@ -47,7 +47,8 @@ public class Jugador public List mazo; public string nombre; public string heroe; - public Jugador(int vida, int mana, List mano, List mazo, string nombre, string heroe) + public List tablero; + public Jugador(int vida, int mana, List mano, List mazo, string nombre, string heroe, List tablero) { this.vida = vida; this.mana = mana; @@ -55,6 +56,7 @@ public Jugador(int vida, int mana, List mano, List mazo, string this.mazo = mazo; this.nombre = nombre; this.heroe = heroe; + this.tablero = tablero; } public void ManaGrowth() { @@ -108,14 +110,34 @@ public Cartas(int costo, int ataque, int vida) warGolem = new Cartas(7, 7, 7); coreHound = new Cartas(7, 9, 5); 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); } @@ -129,12 +151,12 @@ public void TerminarTurno() { } - public void Draw() + public void Draw(List Mano, List Mazo) { int r = rnd.Next(listaCartas.Count); - if (mano.Count > 10) + if (Mano.Count < 10) { - mano.Add(listaCartas[r]); + Mano.Add(listaCartas[r]); } // sacar una carta al azar del mazo y ponerla en la mano al principio de cada turno. } @@ -146,12 +168,12 @@ public void crearMazo() mazo.Add(listaCartas[r]); } } - public void crearMano() + public void crearMano(List Mano, List Mazo) { - while (mano.Count <= 10) + if (Mano.Count <= 10) { int r = rnd.Next(listaCartas.Count); - mano.Add(mazo[r]); + Mano.Add(Mazo[r]); } } @@ -172,7 +194,7 @@ public Tablero(List TableroJugador1, List TableroJugador2, Jugad this.Jugador2 = Jugador2; } - public void JugarCartas(Jugador Jugador, List TableroJugador) + public static void JugarCartas(Jugador Jugador, List TableroJugador) { } @@ -206,13 +228,15 @@ static void Main(string[] args) List Mano1 = new List(); List Mano2 = new List(); - Jugador Jugador1 = new Jugador(30, 0, Mano1, Mazo1, name1, heroe1); - Jugador Jugador2 = new Jugador(30, 0, Mano2, Mazo2, name2, heroe2); + List TableroJugador1 = new List(); + List TableroJugador2 = new List(); + + Jugador Jugador1 = new Jugador(30, 0, Mano1, Mazo1, name1, heroe1, TableroJugador1); + Jugador Jugador2 = new Jugador(30, 0, Mano2, Mazo2, name2, heroe2, TableroJugador2); Console.WriteLine("Comienza el juego"); bool condicionJuego = true; - List TableroJugador1 = new List(); - List TableroJugador2 = new List(); + Random rmd = new Random(); int turno = rmd.Next(0, 2); @@ -241,24 +265,86 @@ static void Main(string[] args) } Console.WriteLine("Elija el numero de carta que desea jugar"); string numeroDeCarta = Console.ReadLine(); - int numeroDeCarta1 = int32.parse(numeroDeCarta); + int numeroDeCarta1 = Int32.Parse(numeroDeCarta); Tablero.JugarCartas(Jugador1, TableroJugador1); } else if (decision1 == "2") { - for (int i = 0; i < Mano1.Count; i++) + for (int i = 0; i < TableroJugador1.Count; i++) { - Console.WriteLine("[" + i + "]" + Mano1[i]); + Console.WriteLine("[" + i + "]" + TableroJugador1[i]); } Console.WriteLine("Elija el numero de carta que desee que ataque"); + string cartaElegida = Console.ReadLine(); + int cartaElegida1 = Int32.Parse(cartaElegida); + } + else if (decision1 == "3") + { + //poder con interface y wea + } + else if (decision1 == "4") + { + condicionTurno = false; + turno = 1; + } + } + + + + } + else if (turno == 1) + { + Jugador2.ManaGrowth(); + bool condicionTurno = true; + + while (condicionTurno) + { + Console.WriteLine("Turno de " + Jugador2.nombre); + Console.WriteLine("¿Que desea hacer?"); + Console.WriteLine("(1) Jugar una carta de la mano"); + Console.WriteLine("(2) Atacar"); + Console.WriteLine("(3) Usar el poder"); + Console.WriteLine("(4) Terminar el turno"); + string decision2 = Console.ReadLine(); + + if (decision2 == "1") + { + for (int i = 0; i < Mano2.Count; i++) + { + Console.WriteLine("[" + i + "]" + Mano2[i]); + } + Console.WriteLine("Elija el numero de carta que desea jugar"); + string numeroDeCarta = Console.ReadLine(); + int numeroDeCarta1 = Int32.Parse(numeroDeCarta); + Tablero.JugarCartas(Jugador2, TableroJugador2); + } + else if (decision2 == "2") + { + for (int i = 0; i < TableroJugador2.Count; i++) + { + Console.WriteLine("[" + i + "]" + TableroJugador2[i]); + } + Console.WriteLine("Elija el numero de carta que desee que ataque"); + string cartaElegida = Console.ReadLine(); + int cartaElegida1 = Int32.Parse(cartaElegida); + } + else if (decision2 == "3") + { + //poder con interface y wea + } + else if (decision2 == "4") + { + condicionTurno = false; + turno = 0; } } + + } } } } } -} From 6baad3c3051eff62ea3c8d9cfc49cedf504168f7 Mon Sep 17 00:00:00 2001 From: LucasLatuz Date: Wed, 10 May 2017 23:02:38 -0300 Subject: [PATCH 3/4] Add files via upload --- Juego.cs | 94 +++++++++++++++++++------------------------------------- 1 file changed, 32 insertions(+), 62 deletions(-) diff --git a/Juego.cs b/Juego.cs index 8cec6b8..e00efa8 100644 --- a/Juego.cs +++ b/Juego.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -9,7 +9,6 @@ namespace ProyectoFinal interface iMetodos { void Atacar(); - void TerminarTurno(); void Draw(List a, List b); } @@ -66,8 +65,11 @@ public void ManaGrowth() mana = 10; } } - - + public void JugarCartas (List mano,List tablero, int cartaAJugar) + { + tablero.Add(mano[cartaAJugar]); + mano.Remove(mano[cartaAJugar]); + } } @@ -147,10 +149,7 @@ public void Atacar() // si se ataca a carta hacerlo directamente // si se ataca a heroe hacerlo a traves de la interfaz } - public void TerminarTurno() - { - - } + public void Draw(List Mano, List Mazo) { int r = rnd.Next(listaCartas.Count); @@ -179,32 +178,6 @@ public void crearMano(List Mano, List Mazo) } } - public class Tablero - { - public List TableroJugador1; - public List TableroJugador2; - public Jugador Jugador1; - public Jugador Jugador2; - - public Tablero(List TableroJugador1, List TableroJugador2, Jugador Jugador1, Jugador Jugador2) - { - this.TableroJugador1 = TableroJugador1; - this.TableroJugador2 = TableroJugador2; - this.Jugador1 = Jugador1; - this.Jugador2 = Jugador2; - } - - public static void JugarCartas(Jugador Jugador, List TableroJugador) - { - - } - - - - } - - - class Program { static void Main(string[] args) @@ -244,8 +217,9 @@ static void Main(string[] args) { if (turno == 0) { - Jugador1.ManaGrowth(); - bool condicionTurno = true; + Jugador1.ManaGrowth(); //Jugador gana 1 de mana al comienzo del turno. + bool condicionTurno = true; //Para mantenerse en el menu. + List posibleAtacantes = Jugador1.mano; //Asi la misma carta no puede atacar dos veces. while (condicionTurno) { @@ -255,47 +229,43 @@ static void Main(string[] args) Console.WriteLine("(2) Atacar"); Console.WriteLine("(3) Usar el poder"); Console.WriteLine("(4) Terminar el turno"); - string decision1 = Console.ReadLine(); + string decision1 = Console.ReadLine(); //Que es lo que hara el jugador. - if (decision1 == "1") + if (decision1 == "1") //Jugar una carta { - for (int i = 0; i < Mano1.Count; i++) + for (int i = 0; i < Jugador1.mano.Count; i++) { - Console.WriteLine("[" + i + "]" + Mano1[i]); + Console.WriteLine("[" + i + "]" + Jugador1.mano[i]); //Mostramos lo que tenemos en la mano } Console.WriteLine("Elija el numero de carta que desea jugar"); - string numeroDeCarta = Console.ReadLine(); - int numeroDeCarta1 = Int32.Parse(numeroDeCarta); - Tablero.JugarCartas(Jugador1, TableroJugador1); + string numeroDeCarta = Console.ReadLine();//Numero de carta que quiere jugar, parte desde el 0 + int numeroDeCarta1 = Int32.Parse(numeroDeCarta);//Numero a int + Jugador1.JugarCartas(Jugador1.mano, Jugador1.tablero,numeroDeCarta1);//Se juega la carta, se agrega al tablero y se borra de la mano } - else if (decision1 == "2") + else if (decision1 == "2") //Atacar con una creatura { - for (int i = 0; i < TableroJugador1.Count; i++) + for (int i = 0; i < posibleAtacantes.Count; i++) { - Console.WriteLine("[" + i + "]" + TableroJugador1[i]); + Console.WriteLine("[" + i + "]" + posibleAtacantes[i]); } Console.WriteLine("Elija el numero de carta que desee que ataque"); string cartaElegida = Console.ReadLine(); int cartaElegida1 = Int32.Parse(cartaElegida); } - else if (decision1 == "3") + else if (decision1 == "3") //Poder del guerrero. { //poder con interface y wea } - else if (decision1 == "4") + else if (decision1 == "4")//Terminar Turno { condicionTurno = false; turno = 1; } } - - - - } else if (turno == 1) { - Jugador2.ManaGrowth(); + Jugador2.ManaGrowth(); //Jugador gana 1 de mana al comienzo del turno bool condicionTurno = true; while (condicionTurno) @@ -310,24 +280,24 @@ static void Main(string[] args) if (decision2 == "1") { - for (int i = 0; i < Mano2.Count; i++) + for (int i = 0; i < Jugador2.mano.Count; i++) { - Console.WriteLine("[" + i + "]" + Mano2[i]); + Console.WriteLine("[" + i + "]" + Jugador2.mano[i]); } Console.WriteLine("Elija el numero de carta que desea jugar"); - string numeroDeCarta = Console.ReadLine(); - int numeroDeCarta1 = Int32.Parse(numeroDeCarta); - Tablero.JugarCartas(Jugador2, TableroJugador2); + string numeroDeCarta2 = Console.ReadLine(); + int numeroDeCartaInt2 = Int32.Parse(numeroDeCarta2); + Jugador2.JugarCartas(Jugador2.mano, Jugador2.tablero, numeroDeCartaInt2); } else if (decision2 == "2") { - for (int i = 0; i < TableroJugador2.Count; i++) + for (int i = 0; i < Jugador2.tablero.Count; i++) { - Console.WriteLine("[" + i + "]" + TableroJugador2[i]); + Console.WriteLine("[" + i + "]" + Jugador2.tablero[i]); } Console.WriteLine("Elija el numero de carta que desee que ataque"); string cartaElegida = Console.ReadLine(); - int cartaElegida1 = Int32.Parse(cartaElegida); + int cartaElegidaInt = Int32.Parse(cartaElegida); } else if (decision2 == "3") { @@ -347,4 +317,4 @@ static void Main(string[] args) } } } -} +} \ No newline at end of file From cc0f97ded8b2696e145845a4e235278025e6e059 Mon Sep 17 00:00:00 2001 From: LucasLatuz Date: Thu, 11 May 2017 23:49:57 -0300 Subject: [PATCH 4/4] Update Juego.cs --- Juego.cs | 287 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 168 insertions(+), 119 deletions(-) diff --git a/Juego.cs b/Juego.cs index e00efa8..3fced88 100644 --- a/Juego.cs +++ b/Juego.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -9,7 +9,7 @@ namespace ProyectoFinal interface iMetodos { void Atacar(); - void Draw(List a, List b); + void Draw(List a, List b); } class Hunter @@ -47,7 +47,7 @@ public class Jugador public string nombre; public string heroe; public List tablero; - public Jugador(int vida, int mana, List mano, List mazo, string nombre, string heroe, List tablero) + public Jugador(int vida, int mana, List mano, List mazo, string nombre, string heroe, List tablero) { this.vida = vida; this.mana = mana; @@ -65,123 +65,128 @@ public void ManaGrowth() mana = 10; } } - public void JugarCartas (List mano,List tablero, int cartaAJugar) + public void JugarCartas(List mano, List tablero, int cartaAJugar, int mana) { - tablero.Add(mano[cartaAJugar]); - mano.Remove(mano[cartaAJugar]); + if (mana >= tablero[cartaAJugar].costo) + { + mana -= tablero[cartaAJugar].costo; + tablero.Add(mano[cartaAJugar]); + mano.Remove(mano[cartaAJugar]); + } + else + { + Console.WriteLine("No tienes suficiente mana para jugar esta carta"); + } } + public void AtacarCarta(List posiblesAtacantes, int cartaElegida, List tablero, int cartaTarget) // si se ataca a carta hacerlo directamente + { + tablero[cartaTarget].vida -= posiblesAtacantes[cartaElegida].ataque; + } + public void AtacarJugador(List posiblesAtacantes, int cartaElegida, Jugador jugador) + { + jugador.vida -= posiblesAtacantes[cartaElegida].ataque; + } } - public class Cartas : iMetodos + public class Cartas { Random rnd = new Random(); public List mano; public List mazo; - int costo; - int ataque; - int vida; - string nombre; - Cartas carta; - Cartas wisp; - Cartas murlocRaider; - Cartas bloodfenRaptor; - Cartas riverCrocolisk; - Cartas magmaRager; - Cartas chillwindYeti; - Cartas oasisSnapjaw; - Cartas boulderfistOgre; - Cartas warGolem; - Cartas coreHound; - List listaCartas = new List(); + public int costo; + public int ataque; + public int vida; + public string nombre; - public Cartas(int costo, int ataque, int vida) + public Cartas(int costo, int ataque, int vida, string nombre) { this.costo = costo; this.ataque = ataque; this.vida = vida; - wisp = new Cartas(0, 1, 1); - murlocRaider = new Cartas(1, 1, 2); - bloodfenRaptor = new Cartas(2, 3, 2); - riverCrocolisk = new Cartas(2, 2, 3); - magmaRager = new Cartas(3, 5, 1); - chillwindYeti = new Cartas(4, 4, 5); - oasisSnapjaw = new Cartas(4, 2, 7); - boulderfistOgre = new Cartas(6, 6, 7); - warGolem = new Cartas(7, 7, 7); - coreHound = new Cartas(7, 9, 5); - 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); - } - - public void Atacar() - { - // primero vemos a quien se ataca, si se ataca a carta o heroe - // si se ataca a carta hacerlo directamente - // si se ataca a heroe hacerlo a traves de la interfaz + this.nombre = nombre; } - - public void Draw(List Mano, List Mazo) + public void Draw(List Mano, List Mazo, List Monton) { - int r = rnd.Next(listaCartas.Count); + int r = rnd.Next(Monton.Count); if (Mano.Count < 10) { - Mano.Add(listaCartas[r]); + Mano.Add(Monton[r]); } // sacar una carta al azar del mazo y ponerla en la mano al principio de cada turno. } - public void crearMazo() + public void crearMazo(List Monton, List Mazo) { + int r = 0; while (mazo.Count <= 30) { - int r = rnd.Next(listaCartas.Count); - mazo.Add(listaCartas[r]); + r =+ 1; + Mazo.Add(Monton[r]); } } - public void crearMano(List Mano, List Mazo) + public void crearMano(List Mano, List Mazo) { - if (Mano.Count <= 10) + while (Mano.Count <= 3) { - int r = rnd.Next(listaCartas.Count); + int r = rnd.Next(Mazo.Count); Mano.Add(Mazo[r]); + Mazo.Remove(Mazo[r]); } - } } class Program { + static void Main(string[] args) { + bool ResumenCartas = true; + List listaCartas = new List(); + if (ResumenCartas) + { + 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"); + 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); + } + Console.WriteLine("Bienvenido a HearthStone, ingresen sus nombres: "); Console.WriteLine("Jugador 1:"); string name1 = Console.ReadLine(); @@ -195,8 +200,8 @@ static void Main(string[] args) Console.WriteLine(name2 + ", ¿Seras Hunter o Warrior?"); string heroe2 = Console.ReadLine(); - List Mazo1 = new List(); - List Mazo2 = new List(); + List Mazo1 = listaCartas; + List Mazo2 = listaCartas; List Mano1 = new List(); List Mano2 = new List(); @@ -209,7 +214,7 @@ static void Main(string[] args) Console.WriteLine("Comienza el juego"); bool condicionJuego = true; - + Random rmd = new Random(); int turno = rmd.Next(0, 2); @@ -219,11 +224,12 @@ static void Main(string[] args) { Jugador1.ManaGrowth(); //Jugador gana 1 de mana al comienzo del turno. bool condicionTurno = true; //Para mantenerse en el menu. - List posibleAtacantes = Jugador1.mano; //Asi la misma carta no puede atacar dos veces. - + List posiblesAtacantes1 = Jugador1.mano; //Asi la misma carta no puede atacar dos veces. + int 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); while (condicionTurno) { - Console.WriteLine("Turno de " + Jugador1.nombre); + Console.WriteLine(Jugador1.nombre + " tienes " +Jugador1.mana + " puntos de mana."); Console.WriteLine("¿Que desea hacer?"); Console.WriteLine("(1) Jugar una carta de la mano"); Console.WriteLine("(2) Atacar"); @@ -238,23 +244,45 @@ static void Main(string[] args) Console.WriteLine("[" + i + "]" + Jugador1.mano[i]); //Mostramos lo que tenemos en la mano } Console.WriteLine("Elija el numero de carta que desea jugar"); - string numeroDeCarta = Console.ReadLine();//Numero de carta que quiere jugar, parte desde el 0 - int numeroDeCarta1 = Int32.Parse(numeroDeCarta);//Numero a int - Jugador1.JugarCartas(Jugador1.mano, Jugador1.tablero,numeroDeCarta1);//Se juega la carta, se agrega al tablero y se borra de la mano + string numeroDeCartaString1 = Console.ReadLine();//Numero de carta que quiere jugar, parte desde el 0 + int numeroDeCartaInt1 = Int32.Parse(numeroDeCartaString1);//Numero a int + Jugador1.JugarCartas(Jugador1.mano, Jugador1.tablero, numeroDeCartaInt1, Jugador1.tablero[numeroDeCartaInt1].costo);//Se juega la carta, se agrega al tablero y se borra de la mano } else if (decision1 == "2") //Atacar con una creatura { - for (int i = 0; i < posibleAtacantes.Count; i++) + for (int i = 0; i < posiblesAtacantes1.Count; i++) { - Console.WriteLine("[" + i + "]" + posibleAtacantes[i]); + Console.WriteLine("[" + i + "]" + posiblesAtacantes1[i]); } Console.WriteLine("Elija el numero de carta que desee que ataque"); - string cartaElegida = Console.ReadLine(); - int cartaElegida1 = Int32.Parse(cartaElegida); + 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 + + 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); + } + 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]); + } + string numeroDeTarget1 = Console.ReadLine(); + int numeroDeTargetInt1 = Int32.Parse(numeroDeTarget1); + Jugador1.AtacarCarta(posiblesAtacantes1, cartaElegidaInt1, Jugador2.tablero, numeroDeTargetInt1); + } } else if (decision1 == "3") //Poder del guerrero. { - //poder con interface y wea + //Aca me habia quedado la cagada, tuve que borrar todo, mañana lo termino } else if (decision1 == "4")//Terminar Turno { @@ -265,56 +293,77 @@ static void Main(string[] args) } else if (turno == 1) { - Jugador2.ManaGrowth(); //Jugador gana 1 de mana al comienzo del turno - bool condicionTurno = true; - + Jugador2.ManaGrowth(); //Jugador gana 1 de mana al comienzo del turno. + bool condicionTurno = true; //Para mantenerse en el menu. + List posiblesAtacantes2 = Jugador2.mano; //Asi la misma carta no puede atacar dos veces. + int 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); while (condicionTurno) { - Console.WriteLine("Turno de " + Jugador2.nombre); + Console.WriteLine(Jugador2.nombre + " tienes " + Jugador2.mana + " puntos de mana."); Console.WriteLine("¿Que desea hacer?"); Console.WriteLine("(1) Jugar una carta de la mano"); Console.WriteLine("(2) Atacar"); Console.WriteLine("(3) Usar el poder"); Console.WriteLine("(4) Terminar el turno"); - string decision2 = Console.ReadLine(); + string decision2 = Console.ReadLine(); //Que es lo que hara el jugador. - if (decision2 == "1") + if (decision2 == "1") //Jugar una carta { for (int i = 0; i < Jugador2.mano.Count; i++) { - Console.WriteLine("[" + i + "]" + Jugador2.mano[i]); + Console.WriteLine("[" + i + "]" + Jugador2.mano[i]); //Mostramos lo que tenemos en la mano } Console.WriteLine("Elija el numero de carta que desea jugar"); - string numeroDeCarta2 = Console.ReadLine(); - int numeroDeCartaInt2 = Int32.Parse(numeroDeCarta2); - Jugador2.JugarCartas(Jugador2.mano, Jugador2.tablero, numeroDeCartaInt2); + string numeroDeCartaString2 = Console.ReadLine();//Numero de carta que quiere jugar, parte desde el 0 + int numeroDeCartaInt2 = Int32.Parse(numeroDeCartaString2);//Numero a int + Jugador2.JugarCartas(Jugador2.mano, Jugador2.tablero, numeroDeCartaInt2, Jugador2.tablero[numeroDeCartaInt2].costo);//Se juega la carta, se agrega al tablero y se borra de la mano } - else if (decision2 == "2") + else if (decision2 == "2") //Atacar con una creatura { - for (int i = 0; i < Jugador2.tablero.Count; i++) + for (int i = 0; i < posiblesAtacantes2.Count; i++) { - Console.WriteLine("[" + i + "]" + Jugador2.tablero[i]); + Console.WriteLine("[" + i + "]" + posiblesAtacantes2[i]); } Console.WriteLine("Elija el numero de carta que desee que ataque"); - string cartaElegida = Console.ReadLine(); - int cartaElegidaInt = Int32.Parse(cartaElegida); + string cartaElegidaString2 = Console.ReadLine(); + int cartaElegidaInt2 = Int32.Parse(cartaElegidaString2); // Hasta aca se tiene la carta que va a atacar, falta decidir a quien se va a atacar + + 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 target2 = Console.ReadLine(); + int target = Int32.Parse(target2); + + if (target == 1) + { + Jugador1.AtacarJugador(posiblesAtacantes2, cartaElegidaInt2, Jugador1); + } + 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]); + } + string numeroDeTarget2 = Console.ReadLine(); + int numeroDeTargetInt2 = Int32.Parse(numeroDeTarget2); + Jugador1.AtacarCarta(posiblesAtacantes2, cartaElegidaInt2, Jugador1.tablero, numeroDeTargetInt2); + + } } - else if (decision2 == "3") + else if (decision2 == "3") //Poder del guerrero. { - //poder con interface y wea + //Aca me habia quedado la cagada, tuve que borrar todo, mañana lo termino } - else if (decision2 == "4") + else if (decision2 == "4")//Terminar Turno { condicionTurno = false; turno = 0; } } - - - - } } } } -} \ No newline at end of file +}