[ Foro de Java ]

Indiquen nivel de Java según codigo :)

16-Jan-2023 03:09
Invitado (Jonathan)
3 Respuestas

Hola! Quisiera me ayuden a indicarme el nivel de conocimientos de Java que posee la persona que escribió este codigo! MUCHAS GRACIAS!!!


import java.util.Scanner;
public class LoginVideoJuego {
    public static void main(String[] args) {

        Scanner teclado = new Scanner(System.in);
        var juego1 = "Mario Bros!";
        var juego2 = "Metal Slug";
        String[] usuarios = {"usuarioRandom1", "usuarioRandom2", "usuarioRandom3"};
        String[] claves = {"clave1", "clave2", "clave3"};
        var pass = "";
        var juegoElegido = "";

        System.out.println();
        System.out.println("Por favor ingresa tu usuario:");
        var usu = teclado.nextLine();

        var usuarioValido = false;
        var claveValidada = false;

        for (int i = 0; i < usuarios.length; i++) {
            if (usuarios[i].equalsIgnoreCase(usu)) {
                System.out.println("Hola " + usuarios[i] + " por favor, ingresa tu contraseña: ");
                pass = teclado.nextLine();
                usuarioValido = true;
                break;
            }
        }


        if (usuarioValido = false) {
            System.out.println("El usuario que elegiste es invalido, debes volver a reintentar...");
            main(args);
        }

        var loginExitoso = false;

        for (int i = 0; i < claves.length; i++) {
            if (claves[i].equals(pass) && usuarios[i].equalsIgnoreCase(usu)) {
                loginExitoso = true;
                break;
            }
        }

        if (loginExitoso) {
            System.out.println("Login exitoso!");
            System.out.println("A que juego queres jugar hoy?:");
            System.out.println("1. Mario Bros.");
            System.out.println("2. Twisted Metal");
            juegoElegido = teclado.nextLine();
        } else {
            System.out.println("ingresaste una clave erronea, debes reintentar..");
            main(args);
        }

        if(juegoElegido.contains("mario") || juegoElegido.contains("1")){
            System.out.println("Perfecto! jugaremos al Mario Bros");
        } else {
            System.out.println("Iniciando Twisted Metal");
        }

    }
}


 


24-Feb-2023 20:35
Invitado (Xeros)

El nivel es muy basico, pero lo bueno es que entiende. Es una tontera, pero por ej usa un System.out.println() para hacer un salto de linea en lugar \n.
usa el for clasico en lugar del for mejorado en un caso donde claramente puede usarlo:
for (String usuario : usuarios) {
           if (usuario.equalsIgnoreCase(usu)) {
               System.out.println("Hola " + usuario + " por favor, ingresa tu contraseña: ");
               pass = teclado.nextLine();
               usuarioValido = true;
               break;
           }
       }
No segmenta el codigo en pequeños metodos/funciones (tendrian que ser estaticos para que anden en este caso).
Y por ultimo (esto es cuestion de gusto ya), usa var cuando tenes tipos de datos definidos. Quizas sea chapado a la antigua, pero siempre prefiero definir mi tipo de datos, salvo en ocasiones muy reservadas.

En los ejercicios logicos como estos, nomas podes chequear eso. Hay un mundo aparte de eso. Java es un lenguaje 100% orientado a objetos y es dificil sacar el nivel solamente con esto.

Polimorfismo, herencia, uso de interfaces, programacion generica, manejo de excepciones, manejo de archivos, manejos de hilos, patrones de diseño, pruebas unitarias... Y cuando aprendas todo eso, vas a tener que aprender sobre tecnologias como maven (para el manejo de librerias/dependecias), frameworks como spring, etc.


28-Feb-2023 00:08
Invitado (camilo)

hola jonathan

a mi parecer es el nivel de alguien que lleva unas semanas aprendiendo java desde cero

saludos ;-)


14-Mar-2023 22:31
Invitado (Alejandro Andrade)

Basándome en el código proporcionado, puedo decir que la persona que lo escribió tiene un nivel intermedio de conocimientos de Java.

El código demuestra un buen conocimiento de los conceptos básicos de Java, como la sintaxis, el uso de variables y la entrada y salida de datos mediante la clase Scanner. También utiliza estructuras de control como el bucle for y la declaración if-else para tomar decisiones basadas en las entradas del usuario.

Sin embargo, el código también tiene algunos errores, como el uso incorrecto del operador de asignación en la condición del if en la línea 32 ("usuarioValido = false" en lugar de "usuarioValido == false" o simplemente "usuarioValido == false"). También tiene un problema de recursión infinita en la línea 38, donde llama a main(args) dentro del propio método main.

En general, el código es legible y se entiende su funcionalidad. Sin embargo, aún hay espacio para mejoras en la claridad y eficiencia del código.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)