Bloque Java 5.4: Ejemplo POO con Batalla por turnos

  Рет қаралды 52,757

Empieza A Programar

Empieza A Programar

10 жыл бұрын

Video en el que se resume y ejercita lo visto hasta el momento de programación orientada a objetos haciendo un pequeño sistema de batalla por turnos muy simple.
Datos de los objetos darth_vader y yoda:
darth_vader.setFisico(10);
darth_vader.setFuerza(40);
darth_vader.setNombre("Darth Vader");
darth_vader.setPh(4);
darth_vader.setSalud(500);
darth_vader.setNivel(5);
yoda.setFisico(5);
yoda.setFuerza(60);
yoda.setNombre("Yoda");
yoda.setPh(10);
yoda.setSalud(200);
yoda.setNivel(10);

Пікірлер: 76
@GabrielCalleTorrez
@GabrielCalleTorrez 8 жыл бұрын
Buenas noches, HE ENCONTRADO el fallo de por qué no muere Yoda. Primeramente decir que he aprendido bastante con este capitulo y que revisando bien los comentarios he visto que más de uno se ha encontrado con el problema de que nadie puede hacer morir a YODA jaja. He revisado un poco el codigo dentro de lo que estoy aprendiendo JAVA con tu curso que es estupendo pero he visto que has explicado mal el metodo que has implementado de Random. El caso es que el metodo objecto.nextInt(1) como resultado solo da el valor de 0, porque revisando la API de java he encontrado lo siguiente: The method call returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and n (exclusive). Lo que es decir que el valor que ponemos dentro del metodo se excluye. Poniendo nextInt(1), solo da el resultado de 0 porque 1 se excluye. Esto afecta a algunas desiciones que hemos tomado para hacer una acción u otra. Para tenerlo todo bien solo tenéis que cambiar el valor de 1 que habeis puesto en los ram.nextInt(1) por un dos, ram.nextInt(2). Así podra morir Yoda xd. Para terminar solo te felicito por tu curso nuevamente y te animo que continues con los proyectos que tienes que tendrán éxito como este curso. Felicidades :)
@EmpiezaAProgramar
@EmpiezaAProgramar 8 жыл бұрын
+Gabriel Calle Torrez Pues tienes razon, siempre me confundo con si se incluye o no al ultimo termino xD, incluso tengo por ahi un codigo de ejemplo para cuando no lo recuerdo verlo de forma rapida. Buen trabajo. Un saludo.
@estharlinabreu7593
@estharlinabreu7593 7 жыл бұрын
Me preguntaba lo mismo, pero en mi caso se alternan las muertes por las diferencias de poder ETC pero bien visto lo que expones servira para un futuro y ahora a arreglar el programa :D
@eugeniogarciahernandez6274
@eugeniogarciahernandez6274 7 жыл бұрын
tambien me fije en ese error pero no lo pude descifrar hasta que lei tu comentario, ya habia visto antes random en c# y es bastante parecido, muchas gracias saludos
@JesusGarrido58
@JesusGarrido58 10 жыл бұрын
No sabeis como os quiero de verdad jaja
@eosorto55
@eosorto55 9 жыл бұрын
e visto desde cero todos los videos y sin tener ninguna base de programacion solo con leer y seguir los pasos de Empieza a Programar ya manejo los basico hasta cree mi propia base de juego gracias bro eres grande.
@jhonnyjauregui5082
@jhonnyjauregui5082 7 жыл бұрын
Primero que nada Excelente tu forma de enseñar y muy agradecido por compartir tus conocimientos con las personas que desean aprender. Para el ejercicio en cuestion solo faltaría controlar que los Jedi tengan salud al momento de atacar, porque tal como esta en este momento el código siguen atacando aunque no tengan salud. Dejo el codigo modificado, en el que incluyo ademas a quien esta atacando Darth_Vader para saber a quien se le restará la vida, cabe destacar que eh seguido tus videos desde el primero porque me estoy iniciando en el mundo de Java muuuuuuchas gracias y coloque el código para incentivar a los que como yo estamos aprendiendo este maravilloso lenguaje. import java.util.Random; public class Main { public static void main(String[] args){ boolean Jedi, Sith; int Aleatorio, Salud; Random Rand = new Random(System.nanoTime()); Jedi = true; Sith = true; Personajes P1 = new Personajes(); Personajes P2 = new Personajes(); Personajes P3 = new Personajes(); P1.setNombre("Luke"); P1.setFisico(30); P1.setFuerza(40); P1.setNivel(5); P1.setPh(2); P1.setSalud(30000); P2.setNombre("Yoda"); P2.setFisico(50); P2.setFuerza(80); P2.setNivel(10); P2.setPh(5); P2.setSalud(40000); P3.setNombre("Darth_Vader"); P3.setFisico(50); P3.setFuerza(60); P3.setNivel(8); P3.setPh(7); P3.setSalud(80000); System.out.println(P1.getNombre() + " Tiene una vida de: " + P1.getSalud()); System.out.println(P2.getNombre() + " Tiene una vida de: " + P2.getSalud()); System.out.println(P3.getNombre() + " Tiene una vida de: " + P3.getSalud()); System.out.println(); do{ if (P1.getSalud() > 0 ){ //Si Luke esta vivo Aleatorio = Rand.nextInt(2); // Entre Fuerza y Fisico (0, 1) Respectivamente if (Aleatorio == 0){ Salud = P1.Ataque_Fuerza(); } else{ Salud = P1.Ataque_Fisico(); } System.out.println(P1.getNombre() + " Ha Realizado un ataque de: " + Salud); P3.Daño(Salud); } if (P2.getSalud() > 0 ){ //Si Yoda esta vivo Aleatorio = Rand.nextInt(2); // Entre Fuerza y Fisico (0, 1) Respectivamente if (Aleatorio == 0){ Salud = P2.Ataque_Fuerza(); } else{ Salud = P2.Ataque_Fisico(); } System.out.println(P2.getNombre() + " Ha Realizado un ataque de: " + Salud); P3.Daño(Salud); } if (P3.getSalud() > 0){ //Si Darth_Vader esta vivo Aleatorio = Rand.nextInt(2); // Entre Fuerza y Fisico (0, 1) Respectivamente if (Aleatorio == 0){ Salud = P3.Ataque_Fuerza(); } else{ Salud = P3.Ataque_Fisico(); } System.out.println(P3.getNombre() + " Ha Realizado un ataque de: " + Salud); if (P1.getSalud()
@Mardo716
@Mardo716 Жыл бұрын
el tiempo que tomas para explicar es simplemente excepcional.... Un genio total!!!
@Rafahdez7
@Rafahdez7 9 жыл бұрын
Me ha impresionado mucho este ejemplo, porque en primer momento, parece que no ibamos a ser capaces de algo tan complejo, pero dividiendo el problema grande en "cachitos" se ha hecho hasta sencillo de completar. muy interesante, y muchas gracias por este curso ;)
@irenelopezliebana3038
@irenelopezliebana3038 4 жыл бұрын
Me han servido mucho tus anteriores vídeos de programación orientada a objetos, pero creo que este ejercicio es más avanzado para el nivel que aún tenemos. Igualmente, muchas gracias.
@taco3v24
@taco3v24 8 жыл бұрын
aqui encontre 2 pequeños errores 1) al parecer el numero aleatorio, no se incluyen los extremos, por lo que colocar "1" en los numeros random, no supondra las opciones "0" y "1", sino que mas bien, solo supondra "0" 2) aun despues de muertos, darth seguiraatacando al mismo peleador, lo solucione despues de colocar 3 nuevos booleans, que son: yoda_vivo, darth_vivo y luke_vivo, al terminar el ataque de darth, puse que si el ataque iba dirigido para luke y este tenia la vida
@David-mk1zy
@David-mk1zy 7 жыл бұрын
Excelente video; casi no termino de verlo pero aprendi bastante, gracias.
@emanuelgonzalez4344
@emanuelgonzalez4344 7 жыл бұрын
Muy buenas Emilio! hace mucho q no veo algun video tuyo, pero aprendi mucho con ellos. para no estirar mucho te dejo el codigo q cree hace unas horas Principal import java.util.Random; public class principal { public static void main(String[] args){ int aleatorio, salud; boolean Sh = true, Ga = true; Random rand = new Random(System.nanoTime()); champ Shen = new champ(); champ Garen = new champ(); Shen.setnombre("Shen"); Shen.setgolpe(25); Shen.sethp(3); Shen.setvida(500); Shen.setmana(20); Garen.setnombre("Garen"); Garen.setgolpe(25); Garen.sethp(3); Garen.setvida(500); Garen.setmana(20); System.out.println(Shen.getNombre()+" tiene una vida de: "+Shen.getvida()); System.out.println(Garen.getNombre()+" tiene una vida de :"+Garen.getvida()); System.out.println(); do { aleatorio = rand.nextInt(2); if(aleatorio == 1){ salud = Shen.head(); if(aleatorio == 1){ System.out.println(Shen.getNombre()+" se ah curado por "+salud); if(Shen.getvida() >= 500){ System.out.println("Vida de "+Shen.getNombre()+" completa"); } else{ Shen.cura(salud); } } } else{ salud = Shen.ataque(); if(salud >= 75){ System.out.println(Shen.getNombre()+" ah realizado un ataque CRITICO de "+salud); Garen.daño(salud); } else{ System.out.println(Shen.getNombre()+" ah realizado un ataque de "+salud); Garen.daño(salud); } } if(Garen.getvida() > 0){ aleatorio = rand.nextInt(2); if(aleatorio == 1){ salud = Garen.head(); if(aleatorio == 1){ System.out.println(Garen.getNombre()+" se ah curado por "+salud); if(Garen.getvida() >= 500){ System.out.println("Vida de "+Garen.getNombre()+" completa"); } else{ Garen.cura(salud); } } } else{ salud = Garen.ataque(); if(salud >= 75){ System.out.println(Garen.getNombre()+" ah realizado un ataque CRITICO de "+salud); Shen.daño(salud); } else{ System.out.println(Garen.getNombre()+" ah realizado un ataque de "+salud); Shen.daño(salud); } } if(Shen.getvida()
@jossellaal4013
@jossellaal4013 4 жыл бұрын
Buen vídeo me había quedado atascado tratando de resolver un problema con get y set durante unos 2 dias pero me alegro entrar a tu video aunque fue largo valió la pena.saludos.😁😭
@yalmicroelectronica5640
@yalmicroelectronica5640 10 жыл бұрын
excelente todo.....me ha servido de mucho...
@raul7254
@raul7254 6 жыл бұрын
Hay una forma de pausar el while y reanudarlo con un enter sin usar lo de Exception (que todavía no lo estudié) Es un sencillo, arriba de todo ponemos: String pausa; //guarda el enter Scanner S = new Scanner(System.in); Y al final del DO, luego de los saltos de línea: System.out.println("Presione ENTER para continuar: "); pausa = S.nextLine();
@j-techgamingx6265
@j-techgamingx6265 7 жыл бұрын
jajjajaja genial amigo lo pude hacer solo sin necesidad de seguir con el video, aunque lo hize diferente, pero al final de mi codigo hay un ganador, gracias porque aprendi cosas nuevas :D espero seguir aprendiendo mass contigo!
@junnieranacona3130
@junnieranacona3130 4 жыл бұрын
Buen día Sr. Emilio. La razón par la que siempre golpea Yoda es porque el Sr. Emilio dijo algo que no aplica en el codigo de java en la parte donde se utiliza el random //aleatorio = rand.nextInt(X);\\ el "X" que puede ser cualquier numero en este caso "2" toma valores entre 0-1 el "2" no lo incluye. Esa es la razón por la que siempre pega él. Gracias, excelentes vídeos.
@juanrodriguez-yr3jn
@juanrodriguez-yr3jn 9 жыл бұрын
exelente.. muy buenos videos
@LUISALVAREZ-sv6go
@LUISALVAREZ-sv6go 9 жыл бұрын
muy bueno el ejemplo gracias
@SuperConfucio
@SuperConfucio 8 жыл бұрын
Os agradezco los videos que estaís colgado ya que me parecen muy útiles, pero voy a repasarme unas cuantas veces este, a ver si me entero de algo. Creo que en este video das un gran salto en la dificultad de programar y los que partimos de cero, aún habiendo visto y practicado los videos anteriores, corremos el riesgo de desmoralizarnos y dejarlo. Aparte que no estoy acostumbrado a este tipo de juegos y creo que podías haber utlizado un programa de ejemplo con un poco más de utilidad general. Bueno, lo dicho, me vuelvo a repasar todo, a escribirlo en mi entorno de programación a ver por donde salimos. Saludos.
@geraldbustos
@geraldbustos 8 жыл бұрын
me pasó lo mismo cuando llegue a ese vídeo, ahora pasaron unos meses deje el curso, pero madure un poco mas los conocimientos viendo vídeos y entendiendo un poco más la programación orientada a objetos, haz preguntas amigo! trata de encontrar esa comunidad. Puedes usar stackoverflower en español.
@razvandanielorg
@razvandanielorg 7 жыл бұрын
Les dejo el código que he escrito para que la batalla funcione correctamente avisando cuando uno de los personajes muere (y haciendo que ya no pueda atacar si está muerte y que su compañero reciba el daño en ese caso) y avisando al final quien ha ganado. Muy buen vídeo por cierto! Solo tenía conocimientos básicos de C y creía que esto iba a ser mucho más difícil pero para incluso mucho más fácil que C. Gracias por estos tutoriales. Aquí va el código: //código mejorado por DaniS para que la batalla funcione correctamente import java.util.Random; public class principal { public static void main(String[] arg){ int aleatorio, salud; boolean jedi = true, sith = true, yoda_vivo = true, luke_vivo = true, darth_vader_vivo = true; personaje luke = new personaje(); personaje yoda = new personaje(); personaje darth_vader = new personaje(); Random rand = new Random(System.nanoTime()); luke.setFisico(15); luke.setFuerza(10); luke.setNivel(2); luke.setNombre("Luke"); luke.setPh(2); luke.setSalud(300); darth_vader.setFisico(10); darth_vader.setFuerza(40); darth_vader.setNombre("Darth Vader"); darth_vader.setPh(4); darth_vader.setSalud(500); darth_vader.setNivel(5); yoda.setFisico(5); yoda.setFuerza(60); yoda.setNombre("Yoda"); yoda.setPh(10); yoda.setSalud(200); yoda.setNivel(10); System.out.println(luke.getNombre()+" tiene una vida de: "+luke.getSalud()); System.out.println(yoda.getNombre()+" tiene una vida de: "+yoda.getSalud()); System.out.println(darth_vader.getNombre()+" tiene una vida de: "+darth_vader.getSalud()); System.out.println(); do{ aleatorio = rand.nextInt(2); if(aleatorio == 0){ salud = luke.ataque_fisico(); } else{ salud = luke.ataque_fuerza(); } if(luke_vivo){ System.out.println(luke.getNombre()+" ha realizado un ataque de: "+salud); darth_vader.daño(salud); } aleatorio = rand.nextInt(2); if(aleatorio == 0){ salud = yoda.ataque_fisico(); } else{ salud = yoda.ataque_fuerza(); } if(yoda_vivo){ System.out.println(yoda.getNombre()+" ha realizado un ataque de: "+salud); darth_vader.daño(salud); } if(darth_vader.getSalud() > 0){ aleatorio = rand.nextInt(2); if(aleatorio == 0){ salud = darth_vader.ataque_fisico(); } else{ salud = darth_vader.ataque_fuerza(); } System.out.println(darth_vader.getNombre()+" ha realizado un ataque de: "+salud); aleatorio = rand.nextInt(2); if(aleatorio == 0 && luke_vivo){ luke.daño(salud); } else if(yoda_vivo){ yoda.daño(salud); } if(luke.getSalud()
@EmpiezaAProgramar
@EmpiezaAProgramar 7 жыл бұрын
La idea original de Java era crear un lenguaje de programación mas fácil que C++ y por ser tan fácil es por lo que se ha extendido tanto.
@EnBuenChileno24
@EnBuenChileno24 4 жыл бұрын
Por lo que he estado practicando me doy cuenta que los métodos vienen a ser como las funciones en C. En metodo main, el public static void es la tipica funcion que no te exige ningún retorno y el public static int te exige retorno. Las funciones se llaman exactamente igual que en C osea funcion(); En términos prácticos podemos continuar programando como en C ya que incluso las instancias suenan mucho al typedef struct. Es mas ,realice este mismo simulador de la misma manera en que programábamos en el curso de C. Lo que me estoy dando cuenta es que la nueva dificultad es en el fondo aprender a aprovechar la potencia del java con una forma de programar diferente, con una estructura estándar. Tenia un lio en la cabeza, pero desde que me di cuenta de eso me esta resultando muy facil.. Por eso es tan vital aprender C antes que cualquier otra cosa. Es como aprender a cocinar un pescado en hoguera y después aprender a cocinarlo al horno. Ahora conozco dos formas de hacer lo mismo. Saludos!!
@PPiece6
@PPiece6 8 жыл бұрын
Pls nerf Darth Vader!! Muy buenos vídeos, me has preparado y bien para el examen que tengo, muchísimas gracias!!
@compartelo007
@compartelo007 6 жыл бұрын
No he leído todos los comentarios de abajo y es posible que ya lo hayan dicho así que pido disculpas so me repito. Sólo comentar que la Clase Personaje debería comenzar en mayúsculas para seguir el standard de programación y no equivocarnos si creamos un objeto personaje de la Clase Personaje. Gracias por el curso
@unamRatiug
@unamRatiug 7 жыл бұрын
Excelentes videos amigos me han ayudado mucho.. solo una cosa.. creo que el código seria un poco mas fácil de entender si el atributo salud de la clase principal tuviera otro nombre... como por ejemplo daño.. o dañoRecibido o algo así ... porque ya hay un atributo salud en la clase personaje ademas hay otro atributo que se llama salud en el método daño.. etc. Recordad que es importante escribir código fácil de entender... porque será algo clave a la hora de trabajar en una empresa y pequeños detalles como ese hacen el código un poco mas fácil de leer
@alejandrogarciagolanos815
@alejandrogarciagolanos815 7 жыл бұрын
Luke ataco incluso muerto .. vaya que la fuerza persiste aun despues de la muerte :/, gracias por el video estubo genial. :)
@edwinitpro
@edwinitpro 8 жыл бұрын
Mi programa esta mal e ganado co luke XD, buen video profe
@Daniela-diz-trochz
@Daniela-diz-trochz 8 жыл бұрын
En el minuto 20.22 decis que siempre utilice que ? no te entendi esa parte , que es jedi / sith me la podrias aclarar por favor . y cuando decis atributos tipo Boolean , los sacas del Api , y de donde sacaste lo de System,nanoTime... , tambien del Api ?
@juanrodriguez-yr3jn
@juanrodriguez-yr3jn 9 жыл бұрын
para que no les aparescan vidas con signo negativo cambien la en la condicion: if((Goku.getSalud()
@MrOneofseven
@MrOneofseven 8 жыл бұрын
Muchas Gracias por este instructivo vídeo. Te quería comentar, que oigo un pitído cada pocos segundos, en el audio y resulta un poco molesto. ¿Es cosa mía o se puede eliminar de alguna manera?. Gracias otra vez.
@oswaldojimeneza
@oswaldojimeneza 8 жыл бұрын
Que lástima que este video contrasta con los anteriores donde lo importante era lo didáctico para que pudiéramos asimilar los temas que se estaban explicando. En este video se abarcan tantos temas que para nosotros los nuevones nos queda imposible de asimilar, aunque he visto el video 2 veces, creo que me falta por entender mas del 80%
@EmpiezaAProgramar
@EmpiezaAProgramar 8 жыл бұрын
+Oswaldo Jiménez acosta No se si te habrás visto todos los vídeos anteriores, pero no se explica nada nuevo, son exactamente los mismos conceptos ya explicados poniéndolos en practica en un ejemplo un poco mas largo, nada mas. Un saludo.
@nicolasramirez865
@nicolasramirez865 5 жыл бұрын
amiguito animos que este es el mundo real jajaja a veces se programan aplicaciones que ni se sabe como funcionan :v
@juanpedroculebracano5914
@juanpedroculebracano5914 9 жыл бұрын
Hola, en primer lugar quería agradecerte tu labor, estoy siguiendo todos tus vídeos y me parecen magníficos y muy instructivos. En segundo lugar quería comentarte algo de lo que me he dado cuenta mientras hacía esta práctica por mi cuenta. Resulta que cuando pones los números aleatorios (0 o 1) para que Darth Vader pegue a Luke o a Yoda el número aleatorio siempre sale 0 y por tanto siempre le pega a Luke, si te fijas siempre que ejecutas el programa Yoda llega al final con toda su vida completa. Yo he seguido tu tutorial y me pasa exactamente lo mismo. Creo que es un fallo de generación del número aleatorio, ¿pero cómo se solucionaría? Un saludo y muchas gracias por compartir tus conocimientos. Sigue así!
@juanpedroculebracano5914
@juanpedroculebracano5914 9 жыл бұрын
Parece que he encontrado la solución al problema por lo que me respondo a mí mismo para que podáis contrastar si lo que digo es cierto. Si entramos en el API de Java para la clase Random resulta que pone para el método nextInt(número a insertar), "dará un número aleatorio comprendido entre 0(incluido) y el número que usted haya insertado entre los paréntesis del método(excluido)". Luego, si queremos un número aleatorio que dé 0 o 1 habra que poner nextInt(2), haciendo eso se soluciona el problema. Un saludo!
@JuanCorvette1
@JuanCorvette1 9 жыл бұрын
Juan Pedro Culebra Cano Creo que estas en lo cierto, ya que tenia un problema muy similar y era que luego de realizar dos o tres ataques daban todos los demás ataques 0 y era un bucle infinito, y era ocasionado ya que al aleatorio ser siempre 0, solo realizaban ataques que gastaban ph (ya que yo lo puse primero) y cuando se les acababa este pues si no habían muerto se hacia infinito. Asique tu comentario me fue de mucha ayuda.
@victorsanmartin7626
@victorsanmartin7626 9 жыл бұрын
+Juan Pedro Culebra Cano según eso, entonces el programa solo estará haciendo ataques físicos... Muy buena acotación... Gracias!!
@carlosadolfoamarante7801
@carlosadolfoamarante7801 7 жыл бұрын
Que grande! yo leí el api y se ve que lo leí mal porque me parecio ver "inclusive", igual me di cuenta intuitivamente pero me seguia preguntando porque no me daba de la manera que decia emilio y si de la mia.
@augustonapuri3152
@augustonapuri3152 8 жыл бұрын
Hola tengo la duda la ultima parte que dice if( luke.getsalud()
@MarioLopez-qw6qr
@MarioLopez-qw6qr 5 жыл бұрын
Tengo un problema aqui. cuando el personaje realiza un ataque magico en vez de ph - 1 realiza un ph - 2. Resta uno al realizar el ataque y otro cuando hace >>>"mutante.daño(salud);
@diegoang2111
@diegoang2111 6 жыл бұрын
cada vez que hagas un programa pon un link para descargarlos porfa :D
@zenosama1118
@zenosama1118 7 жыл бұрын
¡OJO! El método nextInt(int bound) de la clase Random devuelve un número aleatorio entre 0 y n-1 siendo n el número que se pone como parámetro de dicho método.
@EmpiezaAProgramar
@EmpiezaAProgramar 7 жыл бұрын
Cierto gran Zeno-sama, espero que le haya gustado los ejemplos que use de Goku y cia, en el futuro lo utilizare a usted :P.
@estharlinabreu7593
@estharlinabreu7593 7 жыл бұрын
Lo he realizado de la siguiente forma hay 3 personajes, primero se enfrentan dos y luego se enfrenta el ganador con el que aun no ha peleado, lo hice basandome en un juego online que solia jugar llamado Conquista 2.0 import java.util.Random; public class mando { private static boolean troy, tao, ninj; private static Datos troyano, taoista, ninja; private static Random rand; private static int aleatorio; private static int salud; public static void main(String[] args){ troy= true; tao= true; ninj= true; rand = new Random(System.nanoTime()); troyano = new Datos(); taoista = new Datos(); ninja = new Datos(); troyano.setAtaque(20); troyano.setMagia(5); troyano.setMp(3); troyano.setNivel(3); troyano.setSalud(500); troyano.setNombre("Troyano"); taoista.setAtaque(10); taoista.setMagia(25); taoista.setMp(100); taoista.setNivel(3); taoista.setSalud(350); taoista.setNombre("Taoista"); ninja.setAtaque(25); ninja.setMagia(10); ninja.setMp(10); ninja.setNivel(3); ninja.setSalud(400); ninja.setNombre("Ninja"); System.out.println(troyano.getNombre() + " tiene una vida de: "+ troyano.getSalud()); System.out.println(ninja.getNombre() + " tiene una vida de: "+ ninja.getSalud()); System.out.println(); do{ if(troy){ if(troyano.getSalud() > 0 && ninj){ aleatorio = rand.nextInt(2); if(aleatorio ==0){ salud = troyano.ataque_fisico(); }else{ salud = troyano.ataque_magico(); } }else{ troy = false; } System.out.println(troyano.getNombre()+" ha realizado un ataque de "+salud); ninja.efecto(salud); if(ninja.getSalud() < 0){ ninj = false; } System.out.println(ninja.getNombre()+ " ha recibido un dano de: "+salud); System.out.println(ninja.getNombre() + " tiene una vida de: "+ ninja.getSalud()); System.out.println(); } if(ninj){ if(ninja.getSalud() > 0 && troy){ aleatorio = rand.nextInt(2); if(aleatorio ==0){ salud = ninja.ataque_fisico(); }else{ salud = ninja.ataque_magico(); } }else{ ninj = false; } System.out.println(ninja.getNombre()+" ha realizado un ataque de "+salud); troyano.efecto(salud); if(troyano.getSalud() < 0){ troy = false; } System.out.println(troyano.getNombre()+ " ha recibido un dano de: "+salud); System.out.println(troyano.getNombre() + " tiene una vida de: "+ troyano.getSalud()); System.out.println(); } try{ System.in.read(); }catch(Exception a){ } }while(troy && ninj); if(troyano.getSalud() > 0){ System.out.println(troyano.getNombre()+" ha ganado"); }else{ System.out.println(troyano.getNombre()+ " ha perdido"); } if(ninja.getSalud() > 0){ System.out.println(ninja.getNombre()+" ha ganado"); }else{ System.out.println(ninja.getNombre()+ " ha perdido"); } System.out.println(); //Segunda Batalla System.out.println(); System.out.println("Segunda Batalla"); System.out.println(); if(ninja.getSalud() > troyano.getSalud()){ ninja.setSalud(400); System.out.println(taoista.getNombre() + " tiene una vida de: "+ taoista.getSalud()); System.out.println(ninja.getNombre() + " tiene una vida de: "+ ninja.getSalud()); System.out.println(); do{ if(tao){ if(taoista.getSalud() > 0 && ninj){ aleatorio = rand.nextInt(2); if(aleatorio ==0){ salud = taoista.ataque_magico(); }else{ salud = taoista.ataque_fisico(); } } else{ tao = false; } System.out.println(taoista.getNombre()+" ha realizado un ataque de "+salud); ninja.efecto(salud); if(ninja.getSalud() 0 && tao){ aleatorio = rand.nextInt(2); if(aleatorio ==0){ salud = ninja.ataque_fisico(); }else{ salud = ninja.ataque_magico(); } }else{ ninj = false; } System.out.println(ninja.getNombre()+" ha realizado un ataque de "+salud); taoista.efecto(salud); if(taoista.getSalud() 0){ System.out.println(taoista.getNombre()+" ha ganado"); }else{ System.out.println(taoista.getNombre()+ " ha perdido"); } if(ninja.getSalud() > 0){ System.out.println(ninja.getNombre()+" ha ganado"); }else{ System.out.println(ninja.getNombre()+ " ha perdido"); } System.out.println(); } else{ troyano.setSalud(500); System.out.println(taoista.getNombre() + " tiene una vida de: "+ taoista.getSalud()); System.out.println(troyano.getNombre() + " tiene una vida de: "+ troyano.getSalud()); System.out.println(); do{ if(troy){ if(troyano.getSalud() > 0 && tao){ aleatorio = rand.nextInt(2); if(aleatorio ==0){ salud = troyano.ataque_fisico(); }else{ salud = troyano.ataque_magico(); } }else{ troy = false; } System.out.println(troyano.getNombre()+" ha realizado un ataque de "+salud); taoista.efecto(salud); if(taoista.getSalud() 0 && troy){ aleatorio = rand.nextInt(2); if(aleatorio ==0){ salud = taoista.ataque_magico(); }else{ salud = taoista.ataque_fisico(); } } else{ tao = false; } System.out.println(taoista.getNombre()+" ha realizado un ataque de "+salud); troyano.efecto(salud); if(troyano.getSalud() 0){ System.out.println(troyano.getNombre()+" ha ganado"); }else{ System.out.println(troyano.getNombre()+ " ha perdido"); } if(taoista.getSalud() > 0){ System.out.println(taoista.getNombre()+" ha ganado"); }else{ System.out.println(taoista.getNombre()+ " ha perdido"); } System.out.println(); } } }
@edgarfigueroa1730
@edgarfigueroa1730 9 жыл бұрын
el ejersicio lo he dejado igual a el tuyo, pero me marca un error al ingresar el metodo de daño public void daño(int salud) y me ha marcado un error
@EmpiezaAProgramar
@EmpiezaAProgramar 9 жыл бұрын
edgar figueroa Si te da un error, es imposible que este igual que el mio. Leete el error y solucionalo. Un saludo.
@alejandrosaz7590
@alejandrosaz7590 8 жыл бұрын
Muy buen vídeo XD . Una duda ¿es posible que el try-catch esté actuando cada 2 pasadas del do-while...? :-s En la primera vuelta me actúa bien y después, se para cada 2 batallas siempre... (lo he comprobado varias veces hasta con el debug y se salta la excepcion!!!) GRACIAAAAS ;) Luke Skywalker tiene una vida de: 300 Maestro Yoda tiene una vida de: 200 Lord Darth Vader tiene una vida de: 500 ------------- Comienza la Batalla 1 ------------ Luke Skywalker ha realizado un ATAQUE FÍSICO de: 17 puntos Maestro Yoda ha realizado un ATAQUE FÍSICO de: 15 puntos Lord Darth Vader ha realizado un ATAQUE FÍSICO de: 15 puntos a Maestro Yoda ----------------- FIN DE BATALLA 1 ---------------- Luke Skywalker tiene una vida de: 300 Maestro Yoda tiene una vida de: 185 Lord Darth Vader tiene una vida de: 468 Pulse ENTER para continuar la pelea... /* ************************************************************ Y al darle a ENTER salen de vez las peleas 2 y 3.... */ ------------- Comienza la Batalla 2 ------------ Luke Skywalker ha realizado un ATAQUE DE FUERZA de: 12 puntos Maestro Yoda ha realizado un ATAQUE DE FUERZA de: 70 puntos Lord Darth Vader ha realizado un ATAQUE FÍSICO de: 15 puntos a Maestro Yoda ----------------- FIN DE BATALLA 2 ---------------- Luke Skywalker tiene una vida de: 300 Maestro Yoda tiene una vida de: 140 Lord Darth Vader tiene una vida de: 391 Pulse ENTER para continuar la pelea... ------------- Comienza la Batalla 3 ------------ Luke Skywalker ha realizado un ATAQUE FÍSICO de: 17 puntos Maestro Yoda ha realizado un ATAQUE FÍSICO de: 15 puntos Lord Darth Vader ha realizado un ATAQUE DE FUERZA de: 45 puntos a Maestro Yoda ----------------- FIN DE BATALLA 3 ---------------- Luke Skywalker tiene una vida de: 300 Maestro Yoda tiene una vida de: 95 Lord Darth Vader tiene una vida de: 359 Pulse ENTER para continuar la pelea...
@albertofeng8149
@albertofeng8149 8 жыл бұрын
Varios problemillas son... : Siempre ataca es a luke Yoda esta demasiado petado Si luke o yoda mueren, siguen atacando, osea... Bueno yo ya los arregle pero tenganlo en cuenta.
@AdrianLopez-pe3zw
@AdrianLopez-pe3zw 9 жыл бұрын
Muy bueno el video pero, me parece que los aleatorios no funcionan como os dijiste.
@EmpiezaAProgramar
@EmpiezaAProgramar 9 жыл бұрын
Adrian Lopez Bueno, en el API viene explicado por Oracle (creadores de Java), le puedes echar un vistazo ahi.
@elvisretuertochonta9967
@elvisretuertochonta9967 Жыл бұрын
Porque yoda o luke siguen atacando despues de muertos xd
@bydocexx7867
@bydocexx7867 7 жыл бұрын
no entiendo lo que hace el return :´(
@EmpiezaAProgramar
@EmpiezaAProgramar 7 жыл бұрын
Pues toca verse los videos anteriores :D
@Mardo716
@Mardo716 Жыл бұрын
lo vi ya como 5 veces...
@EmpiezaAProgramar
@EmpiezaAProgramar Жыл бұрын
Espero que sea por mi sensual voz y no porque te haya resultado complejo 😀
@5535589508
@5535589508 8 жыл бұрын
T_T me da un error con el código y me da un error con : public void daño(int Salud){ this.Salud -= Salud; } Ya revise todo y esta perfecto ._.
@taco3v24
@taco3v24 8 жыл бұрын
a los que tengan el problema en esta linea en especifica: public int daño(int salud){ this.salud -= salud; pues no lloren mas que aqui les traigo su solucion, despues de revisar cautelosamente con muhca determinacion llegue a la conclucion de darle doble click a la equis y me sale que hay que ponerle un return antes del this.salud -= salud ejemplo: public int daño(int salud){ return this.salud -= salud; y me funciona de madres :p, no se por que cuando Emilio, sin colocar el return le corre bien el programa, pero bueno, quiza sea la version.
@Zoroark1999
@Zoroark1999 8 жыл бұрын
Porque es un void, no un int.
@kevinfonseca5999
@kevinfonseca5999 9 жыл бұрын
tengo un problema y es que la variable salud me sale como error y no se que sucede quiero continuar pero pienso que si no resuelvo mi duda no podre avanzar tambien me pone problema las variables boolean y el aleatorio me dice que tengo que volver las static no entiendo import java.util.Random; public class main { int aleatorio; boolean personaje1 = true; boolean personaje2 = true; Random rand = new Random(System.nanoTime()); public static void main(String[] arg){ personaje albita = new personaje(); personaje yulieth = new personaje(); albita.setFisico(10); albita.setFuerza(8); albita.setNivel(1); albita.setNombre("Albita"); albita.setPh(2); albita.setSalud(300); yulieth.setFisico(15); yulieth.setFuerza(6); yulieth.setNivel(2); yulieth.setNombre("yulieth"); yulieth.setPh(1); yulieth.setSalud(250); System.out.println(albita.getNombre()+" tiene una vida de: "+albita.getSalud()); System.out.println(yulieth.getNombre()+" tiene una vida de: "+yulieth.getSalud()); do{ aleatorio = rand.nextInt(1); if(aleatorio == 0){ salud = albita.ataque_fuerza(); } else{ salud = albita.ataque_fisico(); } System.out.println(albita.getNombre()+" a realizado un ataque de: "+Salud); yulieth.daño(salud); aleatorio = rand.nextInt(1); if(aleatorio == 0){ salud = yulieth.ataque_fuerza(); } else{ salud = yulieth.ataque_fisico(); } System.out.println(yulieth.getNombre()+" a realizado un ataque de: "+Salud); albita.daño(salud); }while(personaje1 && personaje2 ); } }
@EmpiezaAProgramar
@EmpiezaAProgramar 9 жыл бұрын
Kevin Fonseca Empieza desde cero, fijate bien en mi ejercicio porque no lo tengo asi seguro, no se puede declarar los atributos personaje1 y 2 fuera del main y usarlos en el main, ademas de que has llamado a la clase main cuando eso no se puede hacer. Un saludo.
@AlvaroWhite
@AlvaroWhite 9 жыл бұрын
Kevin Fonseca es posible que eclipse te obligue a escribirlo de esta forma;el profesor lo escribio asi int salud; a mi me daba error por lo que lo cambie a static int aleatorio, salud; y asi logre que funcione... suerte
@UnluckyRos
@UnluckyRos 10 жыл бұрын
Quiero dar like al video pero no se visualiza el botón, no tengo ni idea de que pasa xD
@Nachoneta
@Nachoneta 9 жыл бұрын
Amigo, hay un error en el sistema de batalla. Porque esta contemplado la posibilidad de que cuando 1 de los personajes muera. Siga pegando
@EmpiezaAProgramar
@EmpiezaAProgramar 9 жыл бұрын
Ignacio Fontaine Es normal que existan bugs de ese tipo, yo hice lo mas basico, ahora ir completando el ejemplo es cosa vuestra, asi es como realmente se aprende. Un saludo.
@Nachoneta
@Nachoneta 9 жыл бұрын
Empieza A Programar Ahh mil disculpas amigo. Pense qe te habias equivocado. Igual sos un grande, es un placer escuchar tus videos. La verdad esqe explicas mejor que mis profesores de la unviersidad. Te sigo desde C. Gracias mil gracias
@alexcodedominican
@alexcodedominican 8 жыл бұрын
Este es mi código de la clase principal de la batalla optimizado cualquier duda a la orden import java.util.Random; public class principal { public static void main (String []arg){ personaje luke = new personaje (); personaje yoda = new personaje (); personaje darth = new personaje (); int salud,aleatorio; boolean yedi=true , sith=true; luke.setFisico(10); luke.setFuerza(15); luke.setNivel(5); luke.setNombre("luke"); luke.setPh(2); luke.setSalud(500); yoda.setFisico(15); yoda.setFuerza(20); yoda.setNivel(4); yoda.setNombre("yoda"); yoda.setPh(4); yoda.setSalud(500); darth.setFisico(20); darth.setFuerza(25); darth.setNivel(6); darth.setNombre("darth"); darth.setPh(3); darth.setSalud(500); System.out.println(luke.getNombre()+" tiene una vida de:"+luke.getSalud()); System.out.println(yoda.getNombre()+" tiene una vida de:"+yoda.getSalud()); System.out.println(darth.getNombre()+" tiene una vida de:"+darth.getSalud()); System.out.println(); System.out.println(); System.out.println(" Empieza la pelea"); System.out.println(); do{ Random rand = new Random (System.nanoTime()); aleatorio= rand.nextInt(2); if (aleatorio == 0){ salud=luke.ataque_fisico(); } else { salud= luke.ataque_fuerza(); } System.out.println(luke.getNombre()+ " a realizado un ataque de: " +salud); if (aleatorio == 0){ yoda.daño(salud); } else { darth.daño(salud); } aleatorio= rand.nextInt(2); if (aleatorio == 0){ salud=yoda.ataque_fisico(); } else { salud= yoda.ataque_fuerza(); } System.out.println(yoda.getNombre()+ " a realizado un ataque de: " +salud); if (aleatorio == 0){ luke.daño(salud); } else { darth.daño(salud); } if (darth.getSalud()>0){ aleatorio= rand.nextInt(2); if (aleatorio == 0){ salud=darth.ataque_fisico(); } else { salud= darth.ataque_fuerza(); } System.out.println(darth.getNombre()+ " a realizado un ataque de: " +salud); aleatorio= rand.nextInt(2); if (aleatorio == 0){ luke.daño(salud); } else { yoda.daño(salud); } if (luke.getSalud()
@lucasagua77
@lucasagua77 7 жыл бұрын
mi mala logica, se pierde muchisimo tiempo con muchas cosas innecesarias
@lucasagua77
@lucasagua77 7 жыл бұрын
aunque a modo de explicacion me sirvio asi que gracias, mañana voy a ver si puedo hacer un juego de este estilo a mi manera
@danielcruz1620
@danielcruz1620 6 жыл бұрын
creo que ha estado muy aburrido quizá porque jamas hee visto starwarss me parece feo eso
Bloque Java 6.1: ¿Que es un Constructor?
17:34
Empieza A Programar
Рет қаралды 69 М.
Bloque Java 6.2: Static en Atributos y Metodos
19:55
Empieza A Programar
Рет қаралды 39 М.
Smart Sigma Kid #funny #sigma #comedy
00:40
CRAZY GREAPA
Рет қаралды 33 МЛН
Каха заблудился в горах
00:57
К-Media
Рет қаралды 10 МЛН
ОБЯЗАТЕЛЬНО СОВЕРШАЙТЕ ДОБРО!❤❤❤
00:45
Slow motion boy #shorts by Tsuriki Show
00:14
Tsuriki Show
Рет қаралды 10 МЛН
Top 25 Microservice Interview Questions Answered - Java Brains
39:54
La LÓGICA de POLIMORFISMO explicada con MINECRAFT
4:21
Absolute
Рет қаралды 227 М.
CREATIVO #464 - BILLIE EILISH
31:12
Roberto Mtz
Рет қаралды 888 М.
Bloque Java 5.1: Introduccion a la Programacion Orientada a Objetos
17:14
Empieza A Programar
Рет қаралды 39 М.
Bloque Java 4.2: Nueva declaracion de Vectores Y Ejemplo
11:32
Empieza A Programar
Рет қаралды 30 М.
Bloque Java 6.3: Ampliando Constructores
22:55
Empieza A Programar
Рет қаралды 24 М.
Smart Sigma Kid #funny #sigma #comedy
00:40
CRAZY GREAPA
Рет қаралды 33 МЛН