static void Main(string[] args) { //serializacion de informacion precargada en programa - solo se corre 1 vez Habilidad h1 = new Habilidad("Lanzallamas", "Fuego", 50, 2, "*", 3, true, "Ataque Base * 2 y Vida Bitmom atacado -5 por 3 turnos"); Habilidad h2 = new Habilidad("Remolino de Fuego", "Fuego", 100, 5, "*", 0, true, "Ataque Base * 5"); Habilidad h3 = new Habilidad("Bola de Fuego", "Fuego", 30, 50, "+", 0, true, "Ataque Base + 50"); Habilidad h4 = new Habilidad("Terremoto", "Tierra", 30, 300, "+", 0, true, "Ataque Base + 300"); Habilidad h5 = new Habilidad("Golpe de Piedra", "Tierra", 50, 3, "*", 0, true, "Ataque Base * 3"); //Habilidad h6 = new Habilidad("Control de sangre", "Agua", ); //Habilidad h7 = new Habilidad("Control de Sangre", "Agua", 100, 10, "+", ); //Habilidad h8 = new Habilidad("Rafaga de Viento", "Aire", ); //Habilidad h9 = new Habilidad("Huracan", "Aire", 80, 10, "+", 0, ) Habilidad h10 = new Habilidad("Chispa", "Trueno", 20, 100, "+", 0, true, "Ataque Base + 10"); //Habilidad h11 = new Habilidad("Sanacion", "Agua", 50, ); //Habilidad h12 = new Habilidad("Arena Movediza", "Tierra", 90, ); //Habilidad h13 = new Habilidad("Paralizar", "Trueno", 90); //Habilidad h14 = new Habilidad("Shock Electrico", "Trueno", 100); //Habilidad h15 = new Habilidad("Nuevo Aire", "Aire", 100); //Creacion de Bitmons Bitmon b1 = new Bitmon("Drago", 150, 300, "Fuego", 75, 40); Bitmon b2 = new Bitmon("Jeti", 100, 450, "Tierra", 35, 80); Bitmon b3 = new Bitmon("Katara", 150, 250, "Agua", 90, 30); Bitmon b4 = new Bitmon("Aang", 150, 250, "Aire", 90, 30); Bitmon b5 = new Bitmon("Pikatsu", 130, 275, "Trueno", 90, 30); Bitmon b6 = new Bitmon("Toph", 100, 250, "Tierra", 100, 40); Bitmon b7 = new Bitmon("Cthulhu", 80, 450, "Agua", 60, 80); Bitmon b8 = new Bitmon("Nattramn", 100, 100, "Trueno", 120, 40); Bitmon b9 = new Bitmon("Ozzy", 100, 350, "Fuego", 100, 30); Bitmon b10 = new Bitmon("Buzz", 120, 250, "Aire", 80, 50); List <Bitmon> bitmons = new List <Bitmon>() { b1, b2, b3, b4, b5, b6, b7, b8, b9, b10 }; FileStream fileStream = new FileStream("datos1", FileMode.OpenOrCreate); BinaryFormatter binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(fileStream, bitmons); fileStream.Close(); Console.ReadLine(); //System.Windows.Forms.Application.Exit(); //exit para app System.Environment.Exit(1); //exit para consola //fin serializacion /* * //deserializacion * List<Bitmon> bitmons = new List<Bitmon>(); * if (File.Exists("datos1")) * { * FileStream fs = new FileStream("datos1", FileMode.Open); * BinaryFormatter binaryFormatter = new BinaryFormatter(); * object deserializado = binaryFormatter.Deserialize(fs); * List<Bitmon> bit = (List<Bitmon>) deserializado; * foreach (Bitmon b in bit) * { * bitmons.Add(b); * } * } * else * { * Console.WriteLine("Hubo un error con la lectura de los archivos"); * Console.WriteLine("Porfavor escriba en las lineas 17 y 37: //"); * Console.WriteLine("Corra nuevamente el programa, este se cerrara al instante"); * Console.WriteLine("Con eso el programa volvera a guardar los datos para el juego"); * Console.WriteLine("Quite los: // en las lineas 17 y 37"); * Console.WriteLine("Luego de esto el programa debiera funcionar correctamente"); * Console.WriteLine("Gracias por su comprencion"); * Console.ReadLine(); * System.Environment.Exit(1); * } */ Console.WriteLine("Bienvenidos a BATALLAS BITMON!!"); Console.WriteLine("Este es un juego de combates por turnos 1v1"); Console.WriteLine("Cada jugador deberá escoger un equipo de 3 Bitmon para salir a luchar"); Console.WriteLine("Ganará el jugador que logre vencer a todos los Bitmon rivales"); string player1; string player2; while (true) { Console.WriteLine("Player 1, ingrese su nombre:"); player1 = Console.ReadLine(); Console.WriteLine("Player 2, ingrese su nombre:"); player2 = Console.ReadLine(); if (player1 == player2) { Console.WriteLine("Oh!, es muy complicado para mi ser juez de rivales indistinguibles"); Console.WriteLine("Deberan ingresar nuevamente sus nombres"); } break; } Jugador p1 = new Jugador(player1); Jugador p2 = new Jugador(player2); Random rnd = new Random(); List <Jugador> jugadores; int orden = rnd.Next(1, 2); if (orden == 1) { jugadores = new List <Jugador>() { p1, p2 } } ; else { jugadores = new List <Jugador>() { p2, p1 } }; Console.WriteLine("El orden sorteado es el siguiente:"); Console.WriteLine("Inicia el jugador: {0}\n Luego va el jugador: {1}", jugadores[0], jugadores[1]); int k = 0; for (int i = 1; i < 7; i++) { Console.WriteLine("Jugador {0} escoja el Bitmon", jugadores[k]); int j = 1; foreach (Bitmon bi in bitmons) { Console.WriteLine(j); bi.VerInfoBitmom(); j += 1; } Console.WriteLine("Ingrese en numero del Bitmon que decee escoger"); jugadores[k].ElegirJugada(10); jugadores[k].agregarBitmon(bitmons[jugadores[k].jugada]); if (k == 0) { k = 1; } else { k = 0; } } while (p1.KO() || p2.KO()) { if (k == 0) { if (jugadores[k].turnosPerdidos > 0) { jugadores[k].turnosPerdidos -= 1; continue; } jugadores[k].Estrategia(jugadores[1]); } else { if (jugadores[k].turnosPerdidos > 0) { jugadores[k].turnosPerdidos -= 1; continue; } jugadores[k].Estrategia(jugadores[0]); } foreach (Jugador j in jugadores) { if (!(j.bitmonActivo().estaVivo())) { Console.WriteLine($"Jugador {j.nombre}, el bitmon {j.bitmonActivo()} ha muerto"); if (j.KO()) { Console.WriteLine($"Jugador {j.nombre} ha perdido"); break; } Console.WriteLine("Debe cambiar de Bitmon \n Escoja uno nuevo"); j.verEquipo(); j.CambiarBitmom(); } } if (k == 0) { k = 1; continue; } k = 0; } } }
// Es el metodo que permite al jugador elegir que hacer en el juego public void Estrategia(Jugador jEnemigo) { Console.WriteLine("Que movimiento deseas hacer {0}?:\n [1] Cambiar Bitmom activo \n [2] Atacar \n [3] Ver info Bitmoms \n [4] Guardar Partida \n [5] Descansar Bitmon"); ElegirJugada(5); //[1] Cambiar Bitmom activo \n [2] Atacar \n [3] Ver info Bitmoms \n [4] Guardar partida \n [5] Descansar if (jugada == 1) { CambiarBitmom(); } else if (jugada == 2)//Atacar { TipoAtaque.getHabilidades(bitmomActivo.getNaturaleza()); ElegirJugada(3); int habilidad1 = 0; foreach (Habilidad h in TipoAtaque.habilidades)//selecciono la posicion de la habilidad escogida dentro de lista de habilidades { if (jugada == 1 && h.naturaleza == bitmomActivo.getNaturaleza()) { jugada = habilidad1; break; } if (h.naturaleza == bitmomActivo.getNaturaleza()) { jugada -= 1; } habilidad1 += 1; } if (TipoAtaque.habilidades[jugada].getTipo()) { TipoAtaque n = new Normal(); bitmomActivo.Ataque(n, TipoAtaque.habilidades[jugada], jEnemigo); } else { TipoAtaque e = new Especial(); string pierdeTurno = TipoAtaque.habilidades[jugada].getOperAttack(); char pierde = pierdeTurno[0]; if (Convert.ToInt32(pierde) == 97)//revisa si empieza con una "a" { //en caso que el jugador que este jugando pierda turno es facil de cambiar //habria que agregarle otro char al getOperAttack para revisar a que jugador corresponde aplicarlo //y poner turnosPerdidos = Convert.ToInt32(turno) - 48; char turno = pierdeTurno[1]; //la cantidad de turnos perdido hay que restarle 48 jEnemigo.turnosPerdidos = Convert.ToInt32(turno) - 48; //turnos es la cantidad de turnos que se pierden } bitmomActivo.Habilidad(e, TipoAtaque.habilidades[jugada], equipo); } } else if (jugada == 3) { verEquipo(); } else if (jugada == 4) { Console.WriteLine("Guardar partida");// FALTA POR HACER //Guardar partida } else if (jugada == 5) { bitmomActivo.Descansar(); } foreach (Bitmon bb in equipo) //al final de cada turno los bitmon sufriran los efectos de habilidad { if (bb.estado > 0) //reducir vida { bb.CambiarVida(5); bb.estado -= 1; } else if (bb.estado < 0)//aumentar vida { bb.CambiarVida(-5); bb.estado += 1; } } }