Autor Tema: Ayuda con programa basico usando while  (Leído 4901 veces)

Alvarobarlop

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Ayuda con programa basico usando while
« en: 19 de Octubre 2022, 06:13 »
Usando estructura while realizar un programa en que se pregunte al usuario por la ficha (cruz o círculo) que el jugador que empieza el juego va a usar. Solo se aceptarán como valores válidos 'x' y 'o' e indistintamente en mayúscula o minúscula. El programa finalizará con un mensaje que dice: El primer jugador juega con 'X' y el segundo con 'O' (en mayúsculas, independientemente de como se hayan introducido) o viceversa. Se preguntará tantas veces como sea necesario hasta que se introduzca un valor correcto.

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 989
    • Ver Perfil
Re: Ayuda con programa basico usando while
« Respuesta #1 en: 19 de Octubre 2022, 10:27 »
Haz tú primero un intento y compartelo por aquí.
Si no consigues al solución, te ayudamos a corregir/completar lo que sea.

Tienes que pedir un dato de tipo char al usuario.
Con un objeto Scanner, puedes pedirlo con el método nextLine(), el cuál te devuelve un String, pero si además le encadenas el método charAt(0) obtendrás un char.
nextLine().charAt(0);

Sin embargo, como hay que contemplar la posibilidad de que el caracter recibido sea mayúscula o minúscula, en estos casos lo ideal es transformar directamente a uno o a otro.
Como nos dice que al final hay que mostrar la ficha elegida y ha de mostrarse en mayúscula, pues así lo vamos a convertir.
Podemos hacerlo con el método toUpperCase(), aplicándolo al String que nos devuelve nextLine(), antes de pedir que lo convierta a char
nextLine().toUpperCase().charAt(0);


Esta petición de dato al usuario, se hace dentro de un bucle while que se ha de repetir mientras la ficha introducida sea distinto de 'X' y de 'O'

Inténtalo.
Un saludo.
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

kaneky

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Re: Ayuda con programa basico usando while
« Respuesta #2 en: 20 de Noviembre 2022, 03:58 »
Hola soy nuevo

Scanner entrada = new Scanner(System.in);
        System.out.println("Ingrese ficha Cruz o Sello ");
        //Convierte el string a um caracter mayuscula
        char primerJ = entrada.nextLine().toUpperCase().charAt(0);

        //Convierte el caracter a un Int
        //int xd  = X;
        System.out.println("Segundo judaro Cruz o sello ");
        char segunJ = entrada.nextLine().toUpperCase().charAt(0);

        while(primerJ!=88 && segunJ!=89 && primerJ !=89 && segunJ != 88){
            System.out.println("Ingrese ficha Cruz o Sello ");
            //Convierte el string a um caracter mayuscula
            primerJ = entrada.nextLine().toUpperCase().charAt(0);

            //Convierte el caracter a un Int
            //int xd  = X;
            System.out.println("Segundo judaro Cruz o sello ");
            segunJ = entrada.nextLine().toUpperCase().charAt(0);
        }

        System.out.println("Jugador 1 = "+primerJ+" Jugador 2 = "+segunJ);

        //System.out.println(X);
        System.out.println(primerJ);

kaneky

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Re: Ayuda con programa basico usando while
« Respuesta #3 en: 20 de Noviembre 2022, 04:03 »


Código: [Seleccionar]

Scanner entrada = new Scanner(System.in);
        System.out.println("Ingrese ficha Cruz o Sello ");
        //Convierte el string a um caracter mayuscula
        char primerJ = entrada.nextLine().toUpperCase().charAt(0);

        //Convierte el caracter a un Int
        //int xd  = X;
        System.out.println("Segundo judaro Cruz o sello ");
        char segunJ = entrada.nextLine().toUpperCase().charAt(0);

        while(primerJ!=88 && segunJ!=89 && primerJ !=89 && segunJ != 88){
            System.out.println("Ingrese ficha Cruz o Sello ");
            //Convierte el string a um caracter mayuscula
            primerJ = entrada.nextLine().toUpperCase().charAt(0);

            //Convierte el caracter a un Int
            //int xd  = X;
            System.out.println("Segundo judaro Cruz o sello ");
            segunJ = entrada.nextLine().toUpperCase().charAt(0);
        }

        System.out.println("Jugador 1 = "+primerJ+" Jugador 2 = "+segunJ);

        //System.out.println(X);
        System.out.println(primerJ);

Sixtoex

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 105
    • Ver Perfil
Re: Ayuda con programa basico usando while
« Respuesta #4 en: 11 de Mayo 2024, 17:36 »
Haz tú primero un intento y compartelo por aquí.
Si no consigues al solución, te ayudamos a corregir/completar lo que sea.

Tienes que pedir un dato de tipo char al usuario.
Con un objeto Scanner, puedes pedirlo con el método nextLine(), el cuál te devuelve un String, pero si además le encadenas el método charAt(0) obtendrás un char.
nextLine().charAt(0);

Sin embargo, como hay que contemplar la posibilidad de que el caracter recibido sea mayúscula o minúscula, en estos casos lo ideal es transformar directamente a uno o a otro.
Como nos dice que al final hay que mostrar la ficha elegida y ha de mostrarse en mayúscula, pues así lo vamos a convertir.
Podemos hacerlo con el método toUpperCase(), aplicándolo al String que nos devuelve nextLine(), antes de pedir que lo convierta a char
nextLine().toUpperCase().charAt(0);


Esta petición de dato al usuario, se hace dentro de un bucle while que se ha de repetir mientras la ficha introducida sea distinto de 'X' y de 'O'

Inténtalo.
Un saludo.

El ejercicio esta por aqui lo realice por python, no se si lo entendi correctamente, pero hay esta

Código: [Seleccionar]
for numero in range(43242):
    jugador1 = input("escribe una letra o u x: ").lower()
    if jugador1 == 'x':
        capturar1 = 'x'
        break
    elif jugador1 == 'o':
        capturar1 = 'o'
        break
    else:
        print("opcion invalida,intenta de nuevo ")
if capturar1 == 'x':
    print("El jugador primero a ingresado X y el jugador segundo a ingresado O")
else:
    print("El jugador primero a ingresado O y el jugador segundo a ingresado X")

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".