Java course. Loops II. Video 19

Поделиться
HTML-код
  • Опубликовано: 19 сен 2024
  • We made a second example with the while loop to understand its syntax and operation.
    For more courses, exercises and manuals visit: www.pildorasinf...

Комментарии • 494

  • @pildorasinformaticas
    @pildorasinformaticas  3 года назад +9

    ✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅
    🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/java-tutorizado/🚀
    🚀 ¿Quieres que te resuelva las dudas de Java? 👉 www.pildorasinformaticas.es/course/java-tutorizado/ 🚀
    💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥

    • @jordyjoelcarhuavilcavillan4287
      @jordyjoelcarhuavilcavillan4287 2 года назад

      @@santiagorodriguezjimenez9540 multiplicalo por 10 Math.random()*10;

    • @onasis180
      @onasis180 Год назад

      Al inicio no sabía cómo lo iba hacer pero cuando empezó con el while ya se me había aclarado la mente y si puedo entender pues quiere decir que voy bien 😅

  • @adriancordova1618
    @adriancordova1618 3 года назад +26

    JAJAJAJA Que curioso, antes de que ejecutaras el programa para averiguar el número aleatorio en mi mente dije que saldrá el 29 y efectivamente era el 29 !!! me siento con poderes sobrenaturales :)

  • @tepi8640
    @tepi8640 3 года назад +27

    Intente programar el jueguito antes de ver el vídeo completo y lo logré, solo era necesario lo que se explico en anteriores vídeos. Estos cursos son increíbles :D

  • @Edd_Elric
    @Edd_Elric 4 года назад +12

    Cursado y terminado un curso dual de DAM, tus videos fueron de gran ayuda, sin ti iba al hoyo fijo. Enorme Juan, eres un ciudadano ejemplar, ojalá la vida te cubra de gloria amigo. Saludos desde Madrid.

  • @46maza
    @46maza 4 года назад +5

    En mi humilde opinión creo que puede haber un fallo, donde ponemos int numero=0 debemos poner int numero=101 o otro número mayor, por que el 0 es un número posible y entonces supongo que no entrariamos en el while, si el número random hubiera sido 0.002343 por ejemplo tendríamos 0

    • @TradingCuantitativo
      @TradingCuantitativo Год назад

      Esto lo comprobé en la descripción de Math.random y es cierto (greater than or equal to 0.0 and less than 1.0). 0.002 x 100 = 0.2. Expresado a int = 0. Para solucionarlo, antes de arrancar con el juego metí un condicional if para que si el número resultante es menor que 1, haga un ++ para sumar 1. Entonces 0 pasaría a ser 1.

    • @maobesoya7335
      @maobesoya7335 7 месяцев назад

      Es correcta tu apreciación. int numero = (int)(Math.random()*101) genera un aleatorio en el rango [0,100]. El profe se equivoco y solo esta considerando valores en el intervalo [0,99]. No obstante, los contenidos son muy buenos.

  •  7 лет назад +46

    También se puede volver entero así:
    Math.round(Math.random() * 100);

  • @pedroidrogo9179
    @pedroidrogo9179 5 лет назад +53

    Espero le sirva a alguien, aca lo hice un poco mas divertido:
    import java.util.*;
    public class AdivinaNumero {
    public static void main(String[] args) {

    int aleatorio = (int)(Math.random()*100);

    Scanner entrada = new Scanner(System.in);

    byte numero = 0;
    byte intentos = 0;

    while (numero != aleatorio){
    intentos++;
    if (intentos > 5){
    System.out.println("Has superado el numero de intentos posibles!!!!!"+" El numero que buscabas era el: "+(aleatorio));
    break;
    }
    switch(intentos){
    case 1:
    System.out.println("Bienvenido al juego,tienes (5) intentos para adivinar el numero, Suerte!!!");
    break;
    case 2:
    System.out.println("Te quedan 4 intentos");
    break;
    case 3:
    System.out.println("Te quedan 3 intentos");
    break;
    case 4:
    System.out.println("Te quedan 2 intentos");
    break;
    case 5:
    System.out.println("Te quedan 1 intento");
    break;

    }
    System.out.println("Introduce un numero entre 0 y 100");
    numero = entrada.nextByte();

    if(numero == aleatorio){
    System.out.println("Has acertado el numero"+" en "+intentos+" intentos FELICIDADES!!!!!!!!!");
    break;

    }else if(numero > aleatorio){
    System.out.println("El numero que buscas es menor");
    }else{
    System.out.println("El numero que buscas es mayor");
    }
    }
    }
    }

    • @grizu1021
      @grizu1021 4 года назад +10

      Esta es mi versión:
      import java.util.Scanner;
      public class Adivina_Numero {
      public static void main(String[] args) {
      // TODO Auto-generated method stub
      int aleatorio = (int)(Math.random()*100);
      int numero = 0;
      int intentos = 10;

      Scanner entrada = new Scanner(System.in);


      System.out.println("***Adivina el número aleatorio entre 0 y 200***
      TIENES 10 INTENTOS");

      //Mientras numero sea diferente de aleatorio e intentos sea mayor a 0 ejecuta
      while(numero != aleatorio && intentos > 0) {

      //Restamos en 1 los intentos
      intentos--;

      System.out.println("Introduce un número:");

      //Almacenamos la entrada del usuario
      numero = entrada.nextInt();

      //Si el número ingresado es menor que el aleatorio
      if(numero < aleatorio) {

      System.out.println("Estas por debajo del número correcto, inténtalo de nuevo." +
      "
      Te quedan : " + intentos + " intentos.");

      }

      //Si el número ingresado es mayor que el aleatorio
      else if(numero > aleatorio) {

      System.out.println("Estás por arriba del número correcto. Inténtalo de nuevo." +
      "
      Te quedan: " + intentos + " intentos.");

      }

      }

      //Si el número ingresado es igual al aleatorio
      if(numero == aleatorio) {

      System.out.println("*** F E L I C I D A D E S. H A S G A N A D O ***" + "
      "
      + "El número correcto es: " + aleatorio );

      //De lo contrario si no se acierta el número y los intentos llegan a 0
      }else {

      System.out.println("
      *HAS PERDIDO*" + "
      " + "No has adivinado el número." +
      "
      El número correcto era: " + aleatorio);

      }
      entrada.close();
      }
      }
      Saludos. :)

    • @rokkaku2401
      @rokkaku2401 3 года назад +3

      @@grizu1021 gracias: 1) no sabia de entrada.close(); y no sabia que mrdas pasaba. 2) usar el && para las condiciones. 3) cerrar while y abajo poner if y else if

    • @rokkaku2401
      @rokkaku2401 3 года назад +3

      @@grizu1021 import java.util.Scanner;
      public class dos {
      public static void main(String[] args) {
      // TODO Auto-generated method stub

      int numero=0;
      int intentos =10;
      int aleatorio=(int)(Math.random()*100);
      Scanner entrada= new Scanner(System.in);

      System.out.println("Bienvenido a adivina el número, tienes 10 intentos para adivinar el número aleatorio.
      ¡Suerte!");
      while (numero != aleatorio && intentos>0) {
      intentos--;
      numero=entrada.nextInt();
      if (numeroaleatorio) {
      System.out.println("El número es menor. Te quedan " +intentos + " intentos.");
      }

      }
      if(numero==aleatorio) {
      System.out.println("Has acertado");
      }

      else if (intentos==0){
      System.out.println("Has perdido");
      }
      entrada.close();
      }
      }

    • @grizu1021
      @grizu1021 3 года назад +6

      @@rokkaku2401 Que bueno, bro. Lo importante es aprender de todos lados y apoyarnos entre nosotros sobre algunas dudas siempre se agradece.

    • @juancamilolopezmorales8594
      @juancamilolopezmorales8594 3 года назад +1

      Está es mi versión:
      import java.lang.Math;
      import javax.swing.JOptionPane;
      import java.lang.Integer;
      public class adivinaNumero {
      public static void main(String[] args) {
      int intentos = 5;
      byte numeroAleatorio = (byte)(Math.random()*100);
      System.out.println(numeroAleatorio);

      String nameUser = JOptionPane.showInputDialog("Ingresa tú nombre:");
      String mensajeBienvenida = nameUser+", tienes 5 intentos, adivina el número.";
      JOptionPane.showMessageDialog(null, mensajeBienvenida);
      boolean caso = false;

      do {

      if(intentos==0) {
      JOptionPane.showMessageDialog(null, "¡Lo siento!
      El juego termino, perdiste tus 5 intentos. :(");
      caso=true;
      break;
      }

      String numero = JOptionPane.showInputDialog("¿Cúal es el número?");
      int number = Integer.parseInt(numero);

      if(number!=numeroAleatorio && caso==false) {
      if(number>numeroAleatorio) {
      JOptionPane.showMessageDialog(null, "El número es menor.");
      intentos--;
      } else if (number

  • @anthonycompres
    @anthonycompres 7 лет назад +3

    esto cada vez se pone mas interezante ya quiero ver que tan lejos podre llegar en la programacion me encanta muchas gracias maestro por los videos

  • @jesusenriquequirozsoto5172
    @jesusenriquequirozsoto5172 5 лет назад +10

    La forma propuesta por Juan de generar un número aleatoria x, tal que 0

    • @Jaimedaviddaza
      @Jaimedaviddaza 5 лет назад +1

      El máximo valor que puede regresar Math.random() es 1.0, y 1.0*100 = 100.0

    • @lmga4159
      @lmga4159 5 лет назад

      @@Jaimedaviddaza El valor que devuelve la función está entre 0

    • @djrequena
      @djrequena 5 лет назад

      @@Jaimedaviddaza No, numero igual o mayor que 0 y menor que 1. Leete la API

    • @elsanluu8549
      @elsanluu8549 5 лет назад

      Puedes entonces simplemente redondear con round y luego volverlo entero:
      (int)Math.round(Math.random()*100)
      No lo he probado pero debería funcionar.

    • @systemfailure2039
      @systemfailure2039 5 лет назад

      aleatorio++; y listo

  • @luiscarloseliasbuenrostro9042
    @luiscarloseliasbuenrostro9042 10 лет назад +64

    Hola Juan, comentario, hay que cerrar el scanner con nombre de la intancia del scanner Ejemplo: adivina.close();
    Con la finalidad de liberar recursos
    Yo lo he puesto al cerrar la llave del while
    Saludos

    • @pildorasinformaticas
      @pildorasinformaticas  10 лет назад +33

      Es recomendable, sí. Muchas gracias por el apunte. Espero que tomen nota los que lean esto. Saludos !!

    • @amm5144
      @amm5144 7 лет назад +2

      Ooh no encontraba el error, muchas gracias! Y gracias por los videos, estoy aprendiendo un monton. Saludos!

    • @Xxsamsk8xX
      @Xxsamsk8xX 7 лет назад

      excelente tutorial...

    • @aliriofreytez6994
      @aliriofreytez6994 6 лет назад

      El IDE siempre me dice eso, he estado investigando y no he conseguido hasta ahora. Muchas gracias.

    • @videoschupmay5211
      @videoschupmay5211 6 лет назад

      como?

  • @juanitoelchispa6492
    @juanitoelchispa6492 10 лет назад +7

    Perfecto lo he conseguido en 6 intentos, luz, luz, ya veo algo.
    El siguente pa mañana por la mañana. A las 6 menos cuarto ja,ja, que vicio.
    Gracias de nuevo Juan

  • @kinyoldboy9240
    @kinyoldboy9240 4 года назад +3

    Con este curso hay esperanzas de aprobar la asignatura. Gracias, Juan!!!!!

  • @humuhumunuku2113
    @humuhumunuku2113 4 года назад +2

    Estaba haciendo el curso poco a poco, pero por la cuarentena voy a poder pegarme un maratón! Saludos desde el confinamiento jejeje.

  • @davidtorres-dm2yx
    @davidtorres-dm2yx 5 лет назад +1

    Hola a todos bueno aquí mi aporte, primero excelente vídeo compa Juan que paciencia y empeño con todos los que están aprendiendo, bueno aquí algo juan dice que el numero estara entre 0 y 100 a lo que llama a Math.random(), esta clase solo toma valore entre 0 y 1 excluyendo el 1 por lo que jamas tomara el valor de 100 entonces asi como lo hace Juan jamas tomara el valor de 100 seria entre 0 y 99, como solucion les pongo el codigo explicado lo mejor posible para que se cumpla la condicion de 0 a 100 con el objeto Random
    package proyecto1;
    import java.util.Random;
    import java.util.Scanner;
    public class bucle_tres {
    public static void main(String[] args) {
    /*Declaracion del objeto que permite el ingreso de datos por consola:D*/
    Scanner ingreso = new Scanner(System.in);
    /*Este objeto genera numeros aleatorio y el parametro que se le pasa
    System.currentTimeMillis() es para asegurar que generemos datos aleato
    rios en cierto tiempo, ya que si no lo hacemos generara siempre
    los mismos numero "aleatorios" :D*/
    Random aleatorio = new Random(System.currentTimeMillis());
    /*Con esta linea declaramos el numero aleatorio como entero y ponemos
    el rango que es excluyente,esto quiere decir que no toma el 101 en este
    caso, como queremos que sea de 0 a 100 por eso pongo el 101 para que
    tome el 100 :D*/
    int numero = aleatorio.nextInt(101);
    /*Con esta asignacion nos aseguramos que se ingresa al programa ya que
    el numero aleatorio toma rangos entre 0 y 100 por que jamas sera igual
    a 300 a menos que se los diga o cambie la variable evaluado*/
    int evaluado=300;
    /*Imprimo el numero al azar a modo de prueba para comprobar que funciona
    el programa obviamente no deberian hacerlo si pretender que alguien
    "adivine"*/
    System.out.println(numero);
    /*Mientras el numero aleatorio que esta entre 0 y 100 sea diferente de
    evaluado que lo iniciamos con 300, entonces haga, ingresara ya que siempre
    sera diferente de 300, esta condicion cambiara mas adelante :D con esto
    solo aseguramos que ingrese*/
    while (numero!=evaluado){
    /*Mensaje de ingreso de datos*/
    System.out.println("Ingrese por favor su numero :D");
    /*El valor de evaluado debe estar entre 0 y 100*/
    evaluado = ingreso.nextInt();
    /*Condicion que me regula si es mayor el numero que busco*/
    if(evaluadonumero){
    /*Mensaje que guia al usuario a su objetivo*/
    System.out.println("Ingrese un numero menor");
    }

    }
    /*Mensaje de que por fin encontro el numero :D*/
    System.out.println("Por fin aserto el numero es: "+numero);
    }
    }
    cualquier duda comenten :D

  • @eduardotrujillo9316
    @eduardotrujillo9316 4 года назад +1

    He intentado hacer este ejercicio por mi cuenta y no había caído en algo tan simple como multiplicar por 100, también porque cuando me informé de algo que generase números aleatorios, me ofrecía como solución, usar la clase estática floor y de aquí pasarlo a int. También usé el método del panel para ingresar datos, a si que en definitiva la mitad de mi programa es para convertir datos de un tipo a otro. Supongo que para practicar es positivo y al final funciona igualmente. Un placer seguir este curso.

  • @yafico568
    @yafico568 7 лет назад

    pildorasinformaticas, Hola, me acabo de enterar de este curso, que a pesar de sus años esta muy bueno, agradezco tu dedicación y entrega, y nada adelante que este curso me lo termino.
    mi codigo fue un poco diferente, pero hace lo mismo, no uso el Sistem.out.println() ni el Scanner, preferi usar JOptionPane.showInputDialog(), aqui el codigo:
    import javax.swing.JOptionPane;
    public class J016_adivina_numero {
    public static void main(String[] args) {
    int num = (int) (Math.random() * 100);
    int entrada = 0;
    int intentos = 0;
    entrada = Integer.parseInt(JOptionPane.showInputDialog("Introduce un numero"
    +" de 0 a 100
    Por favor"));
    while (num != entrada) {
    intentos++;
    if (num < entrada) {
    entrada = Integer.parseInt(JOptionPane.showInputDialog("El numero es"
    +" mas bajo"));
    } else if (num > entrada) {
    entrada = Integer.parseInt(JOptionPane.showInputDialog("El numero es"
    +" mas alto"));
    }
    }
    JOptionPane.showInputDialog("El numero es correcto.
    Lo has conseguido en "
    + intentos + " intentos");
    }
    }
    Un saludo desde Colombia.

  • @davidestebanbermudezquinte3363
    @davidestebanbermudezquinte3363 3 года назад

    eres el mejor expliacaando he tomado muchos cursos por otros youtubers y no entendi tan bien pero contigo entiendo supero bien !!!!!! gracias.

  • @nelsonarcereyes2857
    @nelsonarcereyes2857 9 лет назад +2

    Pues hombre. este curso que queda como anillo al dedo, excelente ,,, felicitaciones
    desde chile un abrazo ...

  • @Darkmasteryi
    @Darkmasteryi 5 лет назад

    Yo hice una variante de tu juego , que consta en que solo te permite jugar hasta n intentos si sobrepasas esos n intentos el programa finaliza con el mensaje de "perdiste el numero es....".
    Gracias Juan !!!!!!!!! tus clases son espectaculares .

  • @ChristianAnimator
    @ChristianAnimator 8 лет назад +8

    gracias por tus tutoriales , siempre me dan ganas e ver mas

  • @leonardoamayareyes282
    @leonardoamayareyes282 4 года назад

    Primero que todo, muy agradecido con usted, en tiempos pasados intente aprender programación, y siempre pensé que era muy difícil por la manera en que explicaban los profesores, te tomas el tiempo suficiente para explicar cada cosa y entender todo a la perfección, muchas gracias.
    Lo he realizado con JOptionPane, me quedo así:
    import javax.swing.*;
    public class Adivina2 {
    public static void main(String[] args) {
    // TODO Auto-generated method stub

    int aleatorio=(int)(Math.random()*100);

    int numero=101;

    int intentos=0;

    while (aleatorio!=numero) {

    intentos++;

    numero=Integer.parseInt(JOptionPane.showInputDialog("Ingrese un numero"));

    if (aleatorionumero) {

    JOptionPane.showMessageDialog(null, "Mas alto");

    }
    }

    JOptionPane.showMessageDialog(null, "El numero es correcto");
    JOptionPane.showMessageDialog(null, "Usted realizo " + intentos + " intentos");
    }
    }

  • @charls1195
    @charls1195 8 лет назад +2

    Lo que va hasta ahora esta genial, espero siga igual hasta el final. Muchas gracias por los videos

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +1

      Gracias por el comentario. Lo intento... espero conseguirlo. Un saludo!!

  • @jgajjggaa9891
    @jgajjggaa9891 9 лет назад +1

    Se me olvidaba poner el codigo, este es el ejercicio que probaba
    import javax.swing.*;
    public class AdivinaNumero {
    public static void main(String[] args) {
    double numeroSecreto=Math.round(Math.random()*10);
    System.out.println(numeroSecreto);
    String num =JOptionPane.showInputDialog(null,"Adivina el numero secreto del 1 al 10");

    if (num !=""){
    int num2=Integer.parseInt(num) ;
    while( num2 != numeroSecreto || num2 10){
    num2 =Integer.parseInt(JOptionPane.showInputDialog("No lo has acertado prueba otra vez")) ;
    }
    }
    else {JOptionPane.showMessageDialog(null,"No has escrito nada, o el numero no esta entre el 1 y el 10 (incluidos)"); }
    JOptionPane.showMessageDialog(null, "Has adivinado el numero");

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      +jga jjggaa Hola !! Esta instrucción tu programa la lee siempre:
      int num2=Integer.parseInt(num) ;
      Esta línea intenta pasar a número int lo que el usuario haya introducido en el JOptionPane. Pero si el usuario introduce un texto que no se pueda pasar a número como por ejemplo una "j", una "h" o cualquier texto que no incluya número, lanza una excepción de tipo NumberFormat Exception. Esto incluye a una cadena de texto vacía. El programa no puede pasar a número una cadena de texto vacía.
      Cuando pulsas Aceptar sin haber introducido nada, num="" (cadena vacía). Y eso no se puede pasar a número con la instrucción int num2=Integer.parseInt(num) ;
      Rediseña tu programa de forma diferente, o espérate a llegar al tema de las excepciones para que tu programa no caiga al lanzar NumberFormatException
      Un saludo

    • @jgajjggaa9891
      @jgajjggaa9891 9 лет назад +1

      Gracias Juan , era simplemente una duda para aprender más sobre este error, tendré en cuenta tu consejo, un abrazo.

  • @AlmostHonest1
    @AlmostHonest1 8 лет назад +3

    Excelente el curso y muy bien explicado, gracias por compartir!!
    Quería aportar un par de cosas que me parece interesante tener en cuenta, al inicializar número en 0 podría darse el caso de que el número generado aleatoriamente sea 0 y entonces sería un juego raro ya que habremos ganado en 0 intentos sin hacer nada, sería bueno inicializarla fuera del rango. Y el segundo caso es comentar que el número 100 es casi imposible que se genere ya que la única forma sería que la función random caiga en el 1.0000000000 al contrario del resto de los números que se pueden obtener con un rango mas amplio (por ejemplo el 50 se puede obtener con cualquier número decimal en el rango de 0.500000000000 a 0.509999999999
    edit: ahora que vi el siguiente video queda aclarado el caso de que aleatorio=0

  • @mariapc4938
    @mariapc4938 Год назад +1

    Ayyy que lindo cuando dijo "Espero no haberles liado con esta pequeña confusión que acabo de tener"!! Si vieras a mi profesor es de locos, no digo que no sea un grande en lo suyo pero lo que es transmitirlo es horrible. Se equivoca y lía al hablar mil veces. Yo pense que era inepta para esto pero gracias a mis compañeros, que me dijeron que se confundía al explicar mucho, me di cuenta que el inepto como profesor era él, no yo. Gracias por tus videos y esa manera de explicar! Es una gozada

  • @20adriiii
    @20adriiii 11 месяцев назад

    Eres increíble. Me estás salvando la vida este curso. Mil gracias por todo

  • @Sergio-vc9ml
    @Sergio-vc9ml 4 года назад +29

    Una duda; en caso de que el aleatorio salga "0", el programa interpretaría que hemos acertado el número sin llegar a introducir ningún número. En mi programa he inicializado la variable "numero=101" para garantizar que siempre se encuentre fuera de rango al empezar el programa y no ocurra ese problema.

    • @d4vidjk
      @d4vidjk 4 года назад +1

      si, esa es una opcion
      la otra es multiplicar *99 (de esta manera haces que sean del 0 al 99) y sumarle uno (del 1 al 100)

    • @grizu1021
      @grizu1021 3 года назад +3

      Puedes poner ((Math.random()*100)+1), ya que si el numero aleatorio es igual a 0 le sumamos 1 y sería 1, nunca nos daría 0, además de que con el +1 nos proporciona el numero 100 .

    • @adriancordova1618
      @adriancordova1618 3 года назад +1

      Si también me puse a pensar en eso pero no se me había ocurrido una solución jajaja hasta que vi tu comentario y dije "no pos si".

    • @santiagomorillo9590
      @santiagomorillo9590 3 года назад +1

      -1 y listo izi

    • @davidalonsomontes
      @davidalonsomontes Год назад

      Para mi lo más lógico ha sido , que el programa nos pida un número antes de entrar en el bucle while, y poner la variable intentos en 1 inicialmente. Por que así, si acertamos a la primera no habremos entrado en el bucle, y nuestros intentos habrán sido solo 1
      También sería correcto sumar a la variable aleatorio 1, ya que el rango de aleatorio es (0..99) y aquí se pide de (1..100).

  • @aprendizdebrujo8419
    @aprendizdebrujo8419 9 лет назад +2

    Muchas gracias por los vídeos, estoy dando mis primeros pasos en java y me está resultando realmente útil tu canal.
    también comentar una cosilla:
    creo que (int)(Math.random()*100) nos va a devolver un numero entre 0 y 99 (en lugar de 100)

  • @kimi4869
    @kimi4869 Год назад

    Hola Juan! Muchas gracias por el curso, eres la mejor ayuda que tenemos los de DAM y DAW.
    Solo comentarte que con este código no se podría generar un número entre 0 y 100, ya que como tú bien dices en el vídeo, el método random de la clase Math genera un aleatorio más alto o igual a 0 y menor que 1 (intervalo [0,1) ), por tanto por mucho que salga el 0.9999999999 nunca obtendríamos el 100 al multiplicar dicho aleatorio por 100.
    Un saludo.

  • @edgarantonioescobarcamas9830
    @edgarantonioescobarcamas9830 6 лет назад +1

    Mil gracias por todo, desde hoy sos mi maestro!!!!!

  • @ninjamasterretro
    @ninjamasterretro 6 лет назад +1

    Hola, apenas estoy iniciando en este curso.. esta muy genial juan, ten en cuenta que es 2018 y te sigue viendo mucha gente, lo que deseo es, que si me podrías pasar todos los ejercicios, que se han hecho en este curso en un archivo comprimido, para mi y muchos nos serviría bastante tenerlos en cuenta por que no siempre nos acordaremos de todo. saludos desde Colombia

    • @pildorasinformaticas
      @pildorasinformaticas  6 лет назад +1

      Gracias por el comentario. Si los encuentro (los ejercicios), los comparto. No se si los tengo ya. Un saludo!

    • @ninjamasterretro
      @ninjamasterretro 6 лет назад +1

      ok estare atento , (Y) muchas gracias

  • @jesusrivera4677
    @jesusrivera4677 8 лет назад +3

    Considero interesante mencionar la palabra reservada "break" dentro del if de los intentos cuya función me sirvió para terminar el juego cuando había gastado n intentos
    Saludos, excelentes videos!

  • @josemanuelc.g6714
    @josemanuelc.g6714 4 года назад

    Hice que el programa te de como límite 5 intentos para lograrlo. Seguimos en proceso de aprendizaje. Gran canal. Saludos y espero que a alguien le resulte de utilidad... Shalom
    package bucles_19;
    /*Importamos la clase que mandará llamar a la librería Scanner:*/
    import java.util.*;
    public class Bucles_19
    {
    public static void main(String[] args)
    {
    Scanner entrada=new Scanner(System.in);/*Objeto de tipo Scanner*/
    int intentos=0,dato=0, globo=5;
    /*Usar método random para generar números aleatorios.
    Devuelve valores decimales*/
    //Math.random();

    /*Lo multiplicamos por 100 para que genere en este problema, valores
    aleatorios entre 0 y 100*/
    //System.out.println(Math.random()*100);

    /*Usaremos refundición para convertir un valor de un tipo, en un valor de otro tipo
    Con la variable entero, le decimos que el valor aleatorio se convierta en entero*/
    int aleatorio=(int)(Math.random()*100);

    //System.out.println(aleatorio);


    /*Ciclo que contará número de intentos:*/
    while(dato!=aleatorio && globo!=0)
    {
    System.out.println("Tienes "+globo+" intentos para lograrlo");
    dato=entrada.nextInt();


    if(dato>aleatorio)
    {
    System.out.println("Menos");
    globo-=1;

    }

    else if(dato0 && dato==aleatorio)
    {
    System.out.println("Enhorabuena, lo lograste en "+intentos+" intentos");
    }

    }

    }

    }

  • @julioalbertodiazp4790
    @julioalbertodiazp4790 8 лет назад +1

    Profe chevere lo de las comas cuando tenemos números entre 0 y 1. Lo que se va entendiendo es que también influye nuestra capacidad de usar las clases con los conocimientos previos para lograr un resultado. Que buen vídeo

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      Gracias por el comentario. Efectivamente la capacidad de cada uno para usar lo aprendido es muy importante. Hay quien no tiene facilidad para usar lo aprendido, y hay quien sí. Un saludo!!

  • @Mr-Knight1
    @Mr-Knight1 8 месяцев назад +1

    buen video solo dos pequeñas correcciones, el metodo random nunca podra generar el numero 100 porque en la api de java dice que genera numeros iguales o mayores a 0, es decir si incluye el cero, y menores que 1(al 1 no lo incluye), por lo que el 1 nunca podra ser multiplicado por 100 y por lo tanto solo generara numeros del 0 al 99. La otra correccion es que al iniciar el numero con un valor de 0 si el numero random es 0 nunca se ejecutaria el bucle, por lo tendrias que inicializar la variable con cualquier numero que este fuera del rango 0-99 para que el bucle se ejecute sin riesgo de tener problemas

  • @ricardogutierrez6089
    @ricardogutierrez6089 8 лет назад +6

    Gracias por tus videos me han servido de mucho un saludo !!!

  • @PabloSchecter
    @PabloSchecter 5 лет назад +3

    Se podría volver entero así:
    System.out.printf("%1.0f",(Math.random()*100));
    Quería dar gracias por este curso ya que no tenía conocimiento de programación y estoy adquiriendo mucho conocimiento porque está muy bien explicado!

    • @iphoenix1582
      @iphoenix1582 4 года назад +8

      -Si te refieres en mostrar o imprimir un resultado final en pantalla, la respuesta es si.
      -Si te refieres en convertir un tipo de dato double a entero (int) y después almacenarlo en una variable tipo entero (int), la respuesta es no.
      Con esta sentencia: System.out.printf("%1.0f",(Math.random()*100));
      Lo que estas haciendo es imprimir en pantalla un resultado:
      es decir que muestre en pantalla el numero generado de forma aleatoria multiplicado por 100 con la siguiente expresión [Math.random()*100] y especificas que el resultado de la multiplicación solo quieres cero decimales con la expresión "%1.0f"...
      La clase Math con su método random() te devuelve un double, que son números decimales.
      Si tu intención con esta sentencia System.out.printf("%1.0f",(Math.random()*100)); es convertir de decimal a entero para almacenarlo en una variable tipo entero (int), no es correcta...
      Tienes que hacer una refundición (que es convertir un número decimal a entero o viceversa) La refundición lo que realmente hace es suprimir los decimales dado que en JAVA no se puede almacenar un número decimal dentro de una variable entera.
      En otros lenguajes de programación si, como Python que automaticamente te ignora la parte decimal y se queda con la entera.
      No soy un experto en programación en java ni en ningún otro lenguaje, soy un novato , me he basado en las explicaciones del curso para responder a tu pregunta.

  • @marlaior
    @marlaior 9 лет назад +10

    Para hacer este programa yo he utilizado Do/while y JOptionPane. El programa tiene en cuenta los números que va diciendo el usuario para actualizar el rango de búsqueda. Por ejemplo, si el número es 70 y el user dice "43", el programa dice que es más alto y pide un número entre 43 y 100. Y si el user dice "85" el programa dice que el número es más bajo y pide otro número entre 43 y 85.
    import javax.swing.*;
    public class AdivinaNumero {
    public static void main(String[] args) {
    int numero = (int)(Math.random()*100);
    int min = 0;
    int max =100;
    int numApuesta;
    String apuesta;
    String mensaje = "";
    int contador = 0;
    do{
    apuesta = JOptionPane.showInputDialog(mensaje+"Escoja un número entre "+min+" y "+max);
    numApuesta = Integer.parseInt(apuesta);
    if ((numApuesta > numero)&&(numApuesta > min)&&(numApuestamin)&&(numApuesta

  • @manuelcarbonellcastillo9851
    @manuelcarbonellcastillo9851 3 года назад

    Joba Juan. Es buenísimo como lo explicas todo. Ojalá hubiera muchos más docentes como tú. Enhorabuena

  • @Jota51178
    @Jota51178 3 года назад

    Muchísimas gracias maestro por compartir toda esta información. Nunca he programado en ningún lenguaje y gracias a ti estoy aprendiendo Java que además me interesa mucho.

  • @giovannygla
    @giovannygla 9 лет назад

    Profe Juan muchas gracias por este aporte tan bueno el que hace compartiendo su conocimiento y experiencia, ando viendo los videos del curso y son geniales cada vez 'soltando' mas la logica de programacion, muchas gracias saludos desde Colombia

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      Giovanny Leal Hola !! Muchas gracias por el comentario. De eso se trata, poco a poco ir captando la "lógica" de este lenguaje de programación. Un saludo amigo

  • @manuelromero1989
    @manuelromero1989 8 лет назад +1

    Felicitaciones por los cursos, los he venido siguiendo y cada día me encuentro más motivado, espero poder seguir entendiendo a la par cada uno de los videos para convertirme en un programador más experimentado. Muchas gracias por tu esfuerzo, seguiré adelante y próximamente con el curso de html5. Saludos desde Colombia

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      Gracias por el comentario. Te doy ánimos para seguir adelante con los cursos. Un saludo!!

  • @Ale-lp4ix
    @Ale-lp4ix 6 лет назад

    Me encanta cada video que pasa estoy aprendiendo mas, este curso es perfecto y eres un gran profesor.
    Muchas gracias! .

  • @santiagolechon9591
    @santiagolechon9591 6 лет назад

    Son excelentes estos tutoriales explicando linea a linea como funciona el algoritmo, y mas aun haciendo algo practico.

  • @rafaelomartellez
    @rafaelomartellez 9 лет назад +1

    Hola +pildorasinformaticas muchísimas gracias por haberte tomado este tiempo, la verdad lo agradezco mucho, ya quiero llegar al ultimo video, :D.
    hice el juego con algunas variantes como algunos acá, le hice la condición de trofeos y limite el numero de oportunidades, dejo el código por si alguien quiere criticarlo.... jeje
    import java.util.*;
    public class Adivina_Numero {
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int resultado= (int)(Math.random()*100);
    Scanner entrada=new Scanner (System.in);
    int numero=0;
    int intentos=0;
    int trofeo= 0;
    int limite=11;
    while (numero!=resultado&&intentos

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      +Rafael Tellez jejejejej... nada de crítica. Excelente aporte. Gracias por seguir mis vídeos y por contribuir al canal con tu código. Un saludo!!

    •  9 лет назад

      +Rafael Tellez
      excelente tenia eso en mente pero no sabia como hscelo

    • @rafaelomartellez
      @rafaelomartellez 9 лет назад

      +Edgardo Muñoz Deleon me alegra que te sirva, me contenta saber que aporte un granito de arena, Saludos!!!

    •  9 лет назад

      Excelente rafael vas por el camino correcto

  • @elielquiaro2789
    @elielquiaro2789 Год назад +1

    Muy buenos los videos, intente realizar el ejercicio a mi manera y este fue el resultado, adjunto el codigo a ver que opinan.
    import java.util.*;
    public class Adivinar_numero {
    public static void main(String[] args) {

    int valor=(int)(Math.random()*100);

    Scanner entrada=new Scanner(System.in);

    int numero=0;
    int intentos=5;

    while (numero!=valor && intentos>0)
    {

    System.out.println("Introduce un numero, tienes solamente " + intentos + " intentos");
    numero=entrada.nextInt();


    if (valornumero) {
    intentos--;
    System.out.println("Es mas alto que el correcto");
    }

    if (intentos==0) {

    System.out.println("perdiste");
    entrada.close();
    }


    else if (valor==numero) {
    System.out.println("Correcto");
    entrada.close();
    }


    }
    }
    }

  • @enriquealvizo1765
    @enriquealvizo1765 8 лет назад +4

    Bien, excelente sonido, excelente imagen, excelente explicación, a veces parece que explicas de mas, pero no es así porque a veces tengo que repetir algunas partes del vídeo. Muchas Gracias

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +3

      Gracias por el comentario. Me alegro de que te guste. Un saludo!!

  • @renzoarredondo9080
    @renzoarredondo9080 2 года назад

    Q pedazo de video... me cerro todo lo aprendido hasta aca

  • @jesusenriquequirozsoto5172
    @jesusenriquequirozsoto5172 5 лет назад +6

    Hay otro problema. Si el número generado aleatoriamente es 0, el programa termina porque el while da false a la primera y la persona que intenta a adivinar no tiene oportunidad de indicar ningún numero. Para corregir ese problema propongo inicializar (que es término correcto en programación y no iniciar, según la RAE), numero = -1
    Saludos

    •  4 года назад +2

      o un do while

  • @gustavot.p.5247
    @gustavot.p.5247 7 лет назад +2

    Viva estos vídeos!!! Mil gracias!!

  • @michaelbeta9501
    @michaelbeta9501 6 лет назад +1

    Que genial esta eso..
    Le estoy agarrando cariño, a la programacion.

  • @pauloapptech5038
    @pauloapptech5038 2 года назад

    Excelente el ejemplo para aprender y sobre todo ya es muy funcional y divertito!!

  • @josejgopar
    @josejgopar 8 лет назад +4

    Muchas gracias por su trabajo.

  • @quike8684
    @quike8684 10 лет назад +1

    Hola de nuevo Juan, he visto que has usado if para definir aleatorionumero.
    También sería factible solamente usar el if con la condición aleatorio

    • @quike8684
      @quike8684 10 лет назад +1

      Enrique Cordero lo he intentado no sirve, perdón.

    • @pildorasinformaticas
      @pildorasinformaticas  10 лет назад +1

      Enrique Cordero Hola !! En el caso de que aciertes te diría Más alto porque no se cumple la condición del primer IF (aleatorio < numero).
      Un saludo

    • @pildorasinformaticas
      @pildorasinformaticas  10 лет назад +1

      Enrique Cordero Te respondí sin ver este mensaje. Un saludo

  • @cesaraugustop
    @cesaraugustop 9 лет назад +9

    Que bien! excelente! gracias Ingeniero! le he tomado mas amor a la programación desde que encontré este maravilloso curso, muchas gracias!
    Ingeniero, discúlpeme, este lenguaje de programación me sirve para desarrollar aplicaciones en Arduino y android verdad?

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +10

      +cesar augusto perez gonzalez Hola !! Gracias por el comentario. Un curso de Java es la base para poder desarrollar en Android. Es mi intención comenzar un curso de Android cuando falte poco para acabar este de Java. Un saludo

    • @baya6002
      @baya6002 8 лет назад +1

      arduino no

  • @lokurabonita
    @lokurabonita 7 лет назад +3

    Yo le he agregado la opcion de rendirse antes de adivinar si se ha cansado de intentar... y he acotado la opcion para que sepa entre que numeros debe adivinar.
    Quedo asi:
    import java.util.Scanner;
    import javax.swing.JOptionPane;
    public class JuegoNumeros {
    public static void main(String[] args) {
    int aleatorio= (int)(Math.random()*100);
    Scanner sc=new Scanner(System.in);
    int intentos=1;
    int min=0;
    int max=100;
    System.out.println("Adivine el numero entre "+min+" y "+max);
    int numero= sc.nextInt();
    while (aleatorio!=numero) {
    intentos++;
    if (numero>aleatorio) {
    System.out.println("Es menor. Vuelva a intentarlo");
    String rendirse= JOptionPane.showInputDialog("Desea rendirse: S/N");
    if(rendirse.equalsIgnoreCase("S")) {
    System.out.println("LOSER!!!...Gracias por jugar.El numero era: "+aleatorio);
    System.exit(0);;
    }
    max=numero;
    System.out.println("Adivine el numero entre "+min+" y "+max);
    numero=sc.nextInt();
    }else if (numero

  • @doriselenacanorivera911
    @doriselenacanorivera911 8 лет назад +1

    Juan Excelente Material, lo estoy siguiendo al pie de la letra. Muchas gracias!!

  • @bartclavero4548
    @bartclavero4548 9 лет назад +1

    Mi record en 3 intentos 10 segundos. Como decimos en Málaga... potra. Gracias por el curso.

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      Bart Clavero Ibarra Gracias a ti por seguir mis vídeos. Un saludo

  • @petitplayer
    @petitplayer 8 лет назад +1

    Muy buen curso, lo estoy siguiendo día a día y sólo comentarte que tienes un don para la enseñanza...
    Espero terminar!!! Creo que empiezo a entender la palabra static...
    Aleluya!!!!

  • @juanjulianceamoran5687
    @juanjulianceamoran5687 9 лет назад +1

    Hola! He empezado hace poco con este curso y la verdad es que me está siendo de gran utilidad. Gracias!
    Me gustaría preguntarte una cosa, he eñadido algunas cosas al programa y me gustraría que me dijeras, si no es molestia, si el código se podría escribir mejor, es decir metiendo alguna cosa mas dentro del while. Lo veo raro, aunque funciona. gracias de nuevo!
    CODIGO: import java.util.*;
    public class Adivina_número {
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int aleatorio=(int)(Math.random()*100);
    Scanner entrada=new Scanner(System.in);
    int numero=0;
    int intentos=0;
    while(numero!=aleatorio){
    intentos++;
    System.out.println("Introduce un número por favor ");
    numero=entrada.nextInt();

    if(aleatorionumero){
    System.out.println("El número debe ser más alto");
    }
    else {
    System.out.println("Enhorabuena, has acertado");
    }

    }

    System.out.println("Número de intentos: " + intentos);
    if(intentos

  • @ThePepes21
    @ThePepes21 8 лет назад +2

    El cero no lo he conseguido, pero sacar de primeras el numero y mis amigos los bucles infinitos, eso si, xDDDD!!!!!
    Profe, eres el mejor, me estoy enterando de TODO, gracias

  • @kevin123996
    @kevin123996 10 месяцев назад

    Me salio antes de ver el video :,) tuve que mirar algunas cosas que fuimos viendo en las anteriores clases, saludos juan!

  • @carlosquintero6277
    @carlosquintero6277 8 лет назад +1

    Juan, buenos días desde jamundi - Colombia, muy agradecido con estos EXCELENTES tutoriales. Tenia una duda con la linea de Código System.out.println.random()); que estaba en el Tutorial, pues me daba un Error. Lo pude Corregir asi: System.out.println.random()*1); y al multiplicarlo por 1 fue la forma de corregir el Error que me daba. Muchas Gracias y continuare con los Videos...

  • @miguelangelvasquezgarcia8235
    @miguelangelvasquezgarcia8235 3 года назад

    Gracias por estos videos profesor Juan, excelente explicacion y paciencia.

  • @rodrigoluengo4734
    @rodrigoluengo4734 4 года назад

    Hace mucho que no subes vídeos, por lo que no sé si verás este comentario pero eres un profesor genial!!!!

  • @VegettoElSuperDios
    @VegettoElSuperDios 4 года назад

    Gracias!, ¡Tu curso me esta siendo de gran utilidad!!. Siempre me he preguntado si algún día lograre mi sueño de aprender a programar, pero gracias a ti estoy logrando por fin avanzar en mi sueño.

  • @Diego_MR09
    @Diego_MR09 6 лет назад +2

    Profe antes de ver tu vídeo lo hice de esta manera:
    import java.util.*;
    public class numeroAleatorio {
    public static void main(String[] args) {
    Scanner lea = new Scanner(System.in);
    double aleatorio1 = Math.random() * 100;
    byte aleatorio2 = (byte) Math.round(aleatorio1);
    boolean acerto = false;
    byte intento = 1;
    do {
    System.out.print("Número: ");
    byte numero = lea.nextByte();
    if (numero == aleatorio2) {
    System.out.println("
    Grandioso, adivinaste el número");
    System.out.println("Y lo hiciste en " + intento + " intentos");
    acerto = true;
    } else if (numero < aleatorio2) {
    System.out.println("Es mayor");
    intento++;
    } else {
    System.out.println("Es menor");
    intento++;
    }
    } while (acerto == false);
    }
    }

  • @FilosofoD
    @FilosofoD 7 лет назад +1

    Muchas gracias, agradecido con tan excelentes explicaciones...saludos

  • @dambPedroJoseMartinezSanchezFo
    @dambPedroJoseMartinezSanchezFo 5 лет назад +2

    Hola aquí os dejo un ejemplo que he hecho siguiendo las explicaciones de este excelentísimo profesor para vuestro juego, pero en esta versión podéis poner un límite de intentos y si no lo conseguís el programa termina. Un saludo.
    import java.util.*;
    public class Adivina_numero {
    public static void main(String[] args) {

    //Hacemos una refundición del double que nos da random y lo multiplicamos por 100 para que sea un número comprendido entre 1 y 100.
    int aleatorio=(int)(Math.random()*100);

    Scanner entrada=new Scanner(System.in);

    int numero=0;

    int intentos=10;
    while(numero != aleatorio && intentos > 0) {

    System.out.println("Introduce un numero por favor.");

    numero=entrada.nextInt();

    if(aleatorionumero){

    System.out.println("Más alto");
    intentos--;
    System.out.println("Te quedan " + intentos + " intentos.");

    }

    }

    if(intentos == 0) {

    System.out.println("Ups, te has quedado sin intentos.");
    }else {
    System.out.println("Correcto.");
    System.out.println("Has hecho " + (10-intentos) + " intentos!");
    }



    }


    }

  • @mahi13873
    @mahi13873 7 лет назад +1

    Gracias...solamente gracias Juan!!!

  • @edbt158
    @edbt158 5 лет назад +5

    Una pregunta, ¿Qué sucedería si la variable aleatorio es igual a 0? ¿No sería mejor usar un ciclo Do While en ese caso?

  • @SuperGokhanDBS
    @SuperGokhanDBS 4 года назад

    Vengo a dar un pequeño aporte, en vez de usar (int) Math.round(Math.random()*100); pueden instanciar la clase "Random", y usar el metodo .nextInt(100);
    Ejemplo:
    Random random = new Random();
    int numero = random.nextInt(100); - genera un numero del 1 al 100

  • @sensoriummo
    @sensoriummo 8 лет назад +1

    Como dices en el video, fue extraño adivinar al primer intento luego de usar intentos++;
    Solté una carcajada. Saludos y gracias por las explicaciones detalladas.

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      +César S Gracias por el comentario y por seguir mis vídeos. Un saludo!!

  • @juaneshero
    @juaneshero 5 лет назад +1

    Hay algo por corregir, cuando se declara la variable int numero=0;, la variable numero no debe de llevar el valor de 0 pues el metodo random genera números en este caso entre 0 y 100, y por tanto si ocurre la casualidad que el metodo genera el número 0, la condición será evaluada como cierta, y por tanto dará por concluido el programa.
    Este error se corrige declarando así: int numero=-1;

    • @pildorasinformaticas
      @pildorasinformaticas  5 лет назад

      Gracias por el aporte. Un saludo!

    • @JUANITOVIDRI
      @JUANITOVIDRI 4 года назад

      te crees que no lo sabe ? Si se para en chorradas no acaba el video

  • @lmga4159
    @lmga4159 5 лет назад +1

    Hola, también se puede utilizar la clase Random del paquete java.util para producir números aleatorios. Saludos.

  • @pildorasinformaticas
    @pildorasinformaticas  9 лет назад

    Juan Julián Cea Morán: Veo tu código perfecto, nada que objetar. Siempre hay algo que se puede mejorar y cosas que se pueden incluir, pero con este ejercicios sencillo a mi ahora no se me ocurre nada. Un saludo

  • @michaelaguilar2597
    @michaelaguilar2597 7 лет назад +1

    Excelentes Vídeos, me han ayudado muchísimo.

  • @fuego_en_llamas
    @fuego_en_llamas 3 года назад

    Muy divertido el juego, gracias profe estas vacaciones veré todo el curso, un saludo.

  • @neylincarolinagutierrezcam2178
    @neylincarolinagutierrezcam2178 7 лет назад +1

    Yo en éste programa he añadido un if donde valido que el rango del número ha de estar comprendido entre 0 y 100, es decir, si el número es menor a 0 y mayor a 100 saco por pantalla un mensaje donde dice que el número esta fuera de rango y que debe introducir sólo un número comprendido entre 0 y 100, y ya luego hago los otros como else if.

  • @BunnyMofletes
    @BunnyMofletes 2 года назад

    Me ha encantado este ejercicio, gracias!!!

  • @Ayszczak
    @Ayszczak 9 лет назад +1

    Gracias por esta practica, logre hacerla con un numero maximo de intentos, lo único que hice fue agregar una variable para el numero de oportunidades, el operador and (&&) en la condición del while comparando el numero de intentos con el numero de oportunidades que se tienen y después agregue un IF para cerrar la adivinanza ya sea satisfactoriamente o no :D

  • @NaTHaNieL023
    @NaTHaNieL023 8 лет назад +1

    +pildorasinformaticas Creo que he encontrado un pequeño error en el programa y me gustaria que me lo confirmaras
    Al utilizar la refundicion para convertir el numero 99.99999 siempre se hace un redondeo a la baja y se quedaria en 99, ¿No seria mas conveniente utilizar el metodo round para que haga redondeo a la baja o a la alta dependiendo del numero que se genere?
    Enhorabuena por tu canal, para mi, el mejor de RUclips en cuanto a programacion con muchisima diferencia

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      +Slevin23 Gracias por tu comentario. Sí, efectivamente sería mejor. Lo que no recuerdo es si a esta altura del curso vimos ya la clase Math con sus métodos. A lo mejor utilicé el casting porque aún no se había visto Math.... pero vamos, que no lo recuerdo. En cualquier caso es cierto lo que dices. Un saludo!!

  • @andreszabala858
    @andreszabala858 6 лет назад +7

    Que diferencia tiene la refundicion con el parseInt/double/long

    • @pildorasinformaticas
      @pildorasinformaticas  6 лет назад +12

      La refundición o "casting" es convertir un tipo en otro. Pueden ser tipos primitivos (int, double, float etc) y también objetos. Es decir, con el casting puedes convertir un objeto de un tipo en un objeto de un tipo diferente.
      El parseInt, parseFloat etc lo que hacen es convertir texto en un tipo entero, decimal etc.
      Un saludo!

    • @andreszabala858
      @andreszabala858 6 лет назад +4

      @@pildorasinformaticas gracias píldora, te amo

  • @hutfield4404
    @hutfield4404 6 лет назад

    Muy bien explicado, ojala fueses mi profesor particular.

  • @apucterio
    @apucterio 8 лет назад +1

    Hola Juan, sumamente agradecido por este curso! Dos dudas:
    1) Cambiando el valor de la variable numero a -1 evitaríamos la posibilidad de que el programa acertara en el primer intento?
    2) Si apenas iniciamos el programa se ejecuta el while y se compara numero=0 con el numero aleatorio, por que no se ve reflejado este intento en el numero de intentos totales?
    Saludos !

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      +Marcelo Tripodi Hola !! Gracias por tus comentarios.
      1) Así es. O con cualquier número por encima de 100
      2) La variable intentos se incrementa nada más entrar en el bucle while. Y cuando entra en el bucle while ya estamos consumiendo nuestro primer intento. Si antes del while intentos=0 y en el while intentos++, conseguimos que la primera vez que introducimos el nº nos cuenta ya como 1 intento. numero=0 está fuera del bucle while que es donde se incrementa intentos. Por este motivo no se cuenta aún como intento.
      Un saludo

    • @apucterio
      @apucterio 8 лет назад

      Entendido, muchas gracias!

  • @franciscojaviervilcheztorr8007
    @franciscojaviervilcheztorr8007 9 лет назад +1

    Hola primero felicitarte por este curso!!
    Veo en tu programa un pequeño fallo , y es que si el numero generado aleatorio es 0 directamente el programa termina y creo que ese no es el objetivo, aquí te dejo mi código yo para incluir cosas vistas anteriormente me he creado dicho juego pero en el cual participan dos usuarios y el programa determina cual de ellos es el vencedor (para cada usuario se genera un número aleatorio diferente). Un saludo!
    import java.util.*;
    import javax.swing.*;
    public class Numero_Aleatorio {
    public static void main(String[] args) {
    int numero_aleatorio=(int)(Math.random()*100);
    Scanner entrada = new Scanner(System.in);
    String jugador1,jugador2;
    jugador1=JOptionPane.showInputDialog("Introduce el nombre del jugador 1");
    System.out.println("Introduce un número: ");
    int numero = entrada.nextInt();
    int intentos_jugador1=1;
    while(numero!=numero_aleatorio){
    intentos_jugador1++;
    if(numeronumero_aleatorio){
    System.out.println("El número que debe introducir es menor");
    System.out.println("Introduce un número: ");
    numero=entrada.nextInt();
    }
    }
    System.out.println("Enhorabuena "+jugador1+ " acertaste el número en "+intentos_jugador1+" intentos");
    jugador2=JOptionPane.showInputDialog("Introduce el nombre del jugador 2");
    numero_aleatorio=(int)(Math.random()*100);
    System.out.println("Introduce un número: ");
    numero = entrada.nextInt();
    int intentos_jugador2=1;
    while(numero!=numero_aleatorio){
    intentos_jugador2++;
    if(numeronumero_aleatorio){
    System.out.println("El número que debe introducir es menor");
    System.out.println("Introduce un número: ");
    numero=entrada.nextInt();
    }
    }
    System.out.println("Enhorabuena "+jugador2+ " acertaste el número en "+intentos_jugador2+" intentos");
    System.out.println();
    if(intentos_jugador1>intentos_jugador2){
    System.out.println("El jugador ganador es:"+jugador2);
    }
    else{
    System.out.println("El jugador ganador es:"+jugador1);
    }
    }
    }

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      Francisco Javier Vilchez Torralba Hola !! Sí, es algo que ya me han indicado en alguna otra ocasión y es cierto. Sería fácilmente solucionable.
      Tú código está muy bien, así que gracias por el aporte. Un saludo

    • @JUANITOVIDRI
      @JUANITOVIDRI 4 года назад

      @@pildorasinformaticas Melón.vas a corregir al profesor? crees que no lo sabia ya? si se pone a comentar estas chorradas se haria eterno el video, no pretendas nunca enmendar a quien sabe más.

  • @lmg6564
    @lmg6564 7 месяцев назад

    ya voy intentando entender todo lo explicas muy bien!! no voy a bajar el ritmo

  • @alejandroconstanzo8504
    @alejandroconstanzo8504 9 лет назад +1

    Fabulosa explicación muchas gracias profe

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      +Alejandro Constanzo (ShijimaHD) Gracias por el comentario. Un saludo

  • @danielagomezgarcia2726
    @danielagomezgarcia2726 3 месяца назад +1

    Mi querido profesor, tengo que hacer este comentario, porque es algo random de verdad jajaja las probabilidades de que al hacer el codigo, coincida tu numero con el del sistema al primer intento, son de 1%, bueno, soy ese 1% jajaja gracias por compartir tus conocimientos, estoy muy entusiasmada con este curso, quiero realizar mi sueño de ser programadora java y poder conseguir un trabajo de ello

  • @scarimovye
    @scarimovye 9 лет назад +1

    esta chevere, lo estoy haciendo a mi forma, // estan muy vacano tus tutoriales

  • @mitoecija
    @mitoecija Год назад

    Muy bueno, me gustó mucho la forma tan sencilla de hacer el juego.

  • @estudiantealexherrera1222
    @estudiantealexherrera1222 7 лет назад +1

    Hola excelente el vídeo

  • @wrkllaun
    @wrkllaun 3 года назад

    Eres gigante, muchisimas gracias.

  • @jego3189
    @jego3189 4 года назад +2

    yo hice un sistema tambien para un limite de intentos xd :
    import java.util.*;
    public class Buclesitos {
    public static void main(String[] args) {
    Scanner read = new Scanner(System.in);
    int aleatorio = (int)(Math.random()*100);
    int num = 0;
    int intentos = 0;
    boolean acertado = true;
    while(num != aleatorio) {

    System.out.println("Escribe el numero");
    num = read.nextInt();
    if(num < aleatorio ) {
    System.out.println("Mas");

    }
    else if(num > aleatorio) {
    System.out.println("Menos");

    }
    intentos++;
    if(intentos == 10) {
    acertado = false;
    break;
    }
    }
    if(acertado == true){
    System.out.println("Felicidades acertaste con "+ intentos + " intentos");
    }
    else if(acertado == false) {
    System.out.println("Perdiste por muchos intentos :(");
    }
    }
    }

  • @fpalmac
    @fpalmac 7 лет назад +3

    ¡Hola Juan! Muy buen vídeo, me gustaría pero, preguntarte sobre un par de cuestiones que me han ido surgiendo a lo largo del vídeo, ya que he intentado hacer alguna cosa de manera diferente a como la haces tu aplicando conceptos aprendidos anteriormente pero no han resultado efectivos. Te cuento;
    1. Cuando creamos el bucle "while" ponemos la condición que necesitamos para que éste sea ejecutado. Si bien es cierto que entiendo lo que has hecho, me gustaría preguntarte si es posible escribir esta condición de igual manera que hicimos en el anterior vídeo, es decir, en vez de poner el diferente que (=!), poner que cuando la condición de que número sea igual que aleatorio y todo esto sea falso, se ejecute el bucle. Sintácticamente vendría a ser algo así:
    while((numero)=(aleatorio)==false){
    todo el contenido de dentro del bucle
    }
    En caso de que esto no sea posible, ¿porqué?.
    2. Dentro del bucle while has usado un condicionante "if" y luego un "else if", si bien es cierto que explicaste la diferencia entre "else" y "else if", no entiendo porque en este caso no pones solo un else.
    ¡Muchas gracias de antemano! Me está encantando el curso, la verdad es que haces un genial trabajo.

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад

      Gracias por el comentario.
      1. Esto que pones: while((numero)=(aleatorio)==false){... no tiene sentido en Java. Es decir, tú como humano entiendes la expresión pero Java no. Una expresión condicional debe tener un único operador condicional. A no ser que quieras concatenar dos o más expresiones condicionales (que no es el caso), entonces utilizarías los operadores lógicos (&& || )
      2. Ya no recuerdo el código de este vídeo y tendría que verlo de nuevo para recordar qué hice en él (no tengo tiempo por desgracia para revisar los vídeos en busca de la duda) pero si solo puse un else es porque solo es necesario comparar una condición y no varias. El else if se utiliza cuando tienes que evaluar varias condiciones.
      Un saludo!!

    • @MsRubendaniel
      @MsRubendaniel 7 лет назад +1

      se coloca else if en este caso porque VA A VOLVER A EVALUAR, en caso de que la primera condición sea falsa. Si solo se limitara a mostrar un mensaje en caso de sea falsa, ahi si solo usa el else. Saludos

    • @lokurabonita
      @lokurabonita 7 лет назад

      uso el else if porque hay 3 cosas que pueden pasar: 1. que sea un numero menor, 2. que sea mayor y 3. que sea igual..
      por lo tanto se evaluan dos de esas condiciones con los if para dar el mensaje que corresponda, la uno y la dos, y la tercera opcion la evalua el while.

  • @rafaelflores4056
    @rafaelflores4056 5 лет назад

    Muchas gracias!
    Excelente tutorial, explicas mejor que en la escuela o en cursos de paga :D

  • @eduardopacompia4144
    @eduardopacompia4144 7 лет назад

    eres un genio, con estas clases si culmino todo tu crees que podria trabajar como programado de java?

  • @jandresvalencia9513
    @jandresvalencia9513 7 лет назад +23

    Este es el mío, le edité con niveles, le coloqué conteo de intentos y último intento deseando suerte :)... !
    PD: Cualquier recomendación o sugerencia, será recibida de forma constructiva.
    /*
    * To change this license header, choose License Headers in Project Properties.
    * To change this template file, choose Tools | Templates
    * and open the template in the editor.
    */
    package primerospasos;
    import java.util.Scanner;
    /**
    *
    * @author Andres-Pc
    */
    public class AdivinaNumero {
    public static void main(String[] args) {
    int azar = (int) (Math.random() * 100); // El número al azar que proporciona el juego.
    int numero = 0; // El número que proporcionará el usuario n cantidad de veces.
    final byte intentos = 10; // El número intentos que realizó el usuario.
    byte i = 0;
    Scanner datos = new Scanner(System.in);
    System.out.println(azar);
    while (numero != azar) {
    i++;
    System.out.println("Ingrese un número: ");
    numero = datos.nextInt();
    if (azar < numero) {
    if (i == intentos) {
    System.out.println("Acabaste tus intentos");
    break;
    }
    if(i < (intentos - 1)){
    System.out.println("Más bajo, te queda (" + (i + 1) + "/" + intentos + ") intentos...");
    } else {
    System.out.println("Más bajo, te queda un último intento... Suerte !");
    }

    } else if (azar > numero) {
    if (i == intentos) {
    System.out.println("Acabaste tus intentos");
    break;
    }
    if(i < (intentos - 1)){
    System.out.println("Más alto, te queda (" + (i + 1) + "/" + intentos + ") intentos...");
    } else {
    System.out.println("Más alto, te queda un último intento... Suerte !");
    }
    }
    }
    if (azar == numero) {
    System.out.println("");
    System.out.print("Es correcto, el número es: " + numero);
    /*
    // Niveles
    (1 - 2) Excelente;
    (3 - 4) Bueno;
    (5 - 7) Regular;
    (8 - 10) Malo;
    */
    if (i >= 1 && i = 3 && i = 5 && i = 8 && i

    • @jandresvalencia9513
      @jandresvalencia9513 7 лет назад +2

      Omiten System.out.println(azar);
      PD: Era con motivos de prueba... !

    • @matiasromera330
      @matiasromera330 5 лет назад +1

      mansa onda le pusiste loco! bien hecho!

    • @oscargm1979
      @oscargm1979 4 года назад +1

      Dice Elon Musk que te lo va a comprar por 100.000.000$ el programa

    • @werds.
      @werds. 4 года назад +1

      Teóricamente hay 1% probabilidad de ganar sin hacer nada
      "azar" puede ser un numero del 0 al 99
      al iniciar "numero" es igual a 0 y hay 1% de probabilidad de que el numero al azar sea 0
      por lo tanto si al iniciar "azar" es igual 0
      ganas automáticamente (ya me paso XD)
      solución:
      int azar = (int) (Math.random() *100 + 1);
      esto hace que "azar" este entre 1 y 100 y no pueda ser 0

    • @diegogallo8555
      @diegogallo8555 3 года назад +1

      ​@@werds. pero si haces eso solucionas un problema y creas otro, porque cuando sea 100 el tuyo valdrá 101.

  • @xeffirot6750
    @xeffirot6750 9 лет назад +1

    Cuando empiece a estar al día con este curso, tal vez me anime a seguir tu otro curso de html5. ¿Es recomendable que lo empiece sin tener idea alguna de html?. Aparte de eso he de decirte que estoy muy agradecido y que cuando sea mayor de edad haré alguna donación.

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      +Shakats Hola !! Gracias por el comentario y por seguir mis vídeos. Mi curso de HTML5 se centra en las novedades de HTML5. hay muchas cosas de HTML que no se ven. No es imposible seguir el curso sin tener idea de HTML pero te recomiendo que busques antes un tutorial o curso donde expliquen HTML desde 0. Yo en mi canal de momento no tengo tal curso.
      El curso de Java es duro así que te animo a que sigas con él. Un saludo!!

  • @joshuaroque1885
    @joshuaroque1885 5 лет назад

    Buenas madrugadas aqui en Perú.
    No hay cosa más noble que lo que está haciendo ustd, y se lo digo enserio.
    Dichoso el momento que me cruce con sus videos.
    Mi pregunta y código es la siguiente :
    El código lo que hace es que me lanza números aleatorios y el usuario tiene que adivinarlo, pero con una cantidad limitada de intentos(5).Cómo haría yo para que en el momento de haber insertado mi ultimo intento (osea el quinto), no me regrese al bucle y me imprima otra vez "Ingrese un número porfavor".En otras palabras intento saber como salir del bucle, es decir cuando yo gasto mi ultimo intento, el bucle sigue , y me sigue saltando el "Ingrese un número porfavor", pero lo que yo quiero es que éste juego acabe.
    Y tambien mi otra duda es, ya que como dije lo habia limitado a intentos, en el momento que estoy en mi ultimo intento , ingreso el dato , y me sale otra vez la advertencia de "Ingrese un número alto o bajo(sea el caso)", y después de eso recien me sale"Se te acabaron los intentos", como haría yo para saltarme esa instrucción de "Ingrese un número alto o bajo", ya que lo que quiero es que al ingresar el intento 5 y si me equivoqué , que me impima el "Se te acabaron los intentos" de una y no como lo mencionado.
    Se lo agradecería un montón su ayuda uu :(
    int aleatorio= (int) (Math.random()*100);
    int numero=500;
    int intentos=0;

    while(numero!=aleatorio) {

    intentos++;
    numero=Integer.parseInt(JOptionPane.showInputDialog("Ingrese un numero porfavor"));

    if(numero>aleatorio) {

    JOptionPane.showMessageDialog(null, "Ingrese un valor más bajo");

    }

    else if(numero