Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
6
respuestas

[Sugerencia] Encuentra una mejor solución que mi código

Utilice otra forma para resolver mi problema, si me ayudan a ver si se peude mejorar en algo, los reto

var inicioDeSesionRegistrado = "alura";
var contrasenhaRegistrada = "alura321";
var entro = false;
var contador = 1;
var intentos = 3;
var oporutindad = 1;

while (contador <= intentos) {
    var inicioDeSesionIngresado = prompt("Ingrese su usuario");
    var contrasenhaIngresada = prompt("Ingrese su contraseña");
    if (inicioDeSesionRegistrado == inicioDeSesionIngresado && contrasenhaRegistrada == contrasenhaIngresada) {
        entro = true;
        break;
    } else {
        oporutindad = intentos - contador
        alert("inicio de sesión inválido. Favor intente de nuevo, te queda " + oporutindad + "intento(s)");
    }
    contador ++;
}

if (entro){
    document.write("Bienvenido al sistema " + inicioDeSesionIngresado)
}else{
    document.write("Fin");
}
6 respuestas

No es competencia pero yo lo resolví de la siguiente manera, no tuve que manera mas variables, como puedes notar use en contador para mostrar en que intento pudo iniciar sesion o en todo caso cuantos intentos le quedaban espero y te sirva esta retroalimentacion

var inicioDeSesionRegistrado = "alura";
    var contrasenhaRegistrada = "alura321";
    var intentos = 3;
    var contador =1;
    while( contador <= intentos )
    {
        var inicioDeSesionIngresado = prompt("Ingrese su usuario");
        var contrasenhaIngresada = prompt("Ingrese su contraseña");
        if( inicioDeSesionRegistrado == inicioDeSesionIngresado && contrasenhaRegistrada == contrasenhaIngresada ) {
        alert("Bienvenido al sistema en su  "+ contador +" intento: "+ inicioDeSesionIngresado);
        document.write("Bienvenido usuario: " + inicioDeSesionRegistrado );
        break;
        }

        else {
        alert("inicio de sesión inválido en su "+ contador +" intento. Favor intente de nuevo");
        }
        contador++;
        if(contador == 3)
        {

         document.write("Tu cuenta esta temporalmente inactiva, por favor contactar al administrador");   
        }

    }

lo unico que me falto era, mostrar un mensaje cuando superaba los 3 intentos

Yo lo resolvi con "For", en tu caso Braulio no mejor es no hacer que tu primer "IF" tenga que mandar un "true" para poder mandar la alerta cuando lo puedes hacer desde ese mismo true. Yo en mi caso utilice un segundo "If" para que cuando estuviera en el intento 3 y no tuviera correcta su usuario y contraseña mandará el mensaje de que su cuenta quedó inhabilitada.

<meta charset="UTF-8">


<h1> Inicio de Sesion en Alura </h1>

<br> <br>

<script>

    function saltarlinea() {

        document.write("<br>");
    }

    function imprimir(frase) {

        document.write(frase);
        saltarlinea();
    }


    var inicioDeSesionRegistrado = "alura";
    var contrasenhaRegistrada = "alura321";
    var totalIntentos = 3;



    for(intentos = 1; intentos <= 3; intentos++){

        var inicioDeSesionIngresado = prompt("Ingrese su usuario");
        var contrasenhaIngresada = prompt("Ingrese su contraseña");

        if( (inicioDeSesionRegistrado == inicioDeSesionIngresado) && (contrasenhaRegistrada == contrasenhaIngresada)) {
            alert("Bienvenido al sistema " + inicioDeSesionIngresado);
            break
        }
        else {
           alert("inicio de sesión inválido. Favor intente de nuevo. (Intentos restantes: " + [totalIntentos - intentos] + ")");
        }

       if (intentos == 3 && inicioDeSesionRegistrado != inicioDeSesionIngresado && (contrasenhaRegistrada != contrasenhaIngresada)) {
           alert("Su cuenta a quedado inhabilitada, Vuelva a intentar en 24hr")
       }

    }

</script>
    <script>

        function registrarUsuario(nombreUsuario, contrasenhaUsuario) {
            /*
                * Registra un usuario en el sistema.
                - nombreUsuario: String.
                - contrasenhaUsuario: String.
                # [String].
            */

            alert(`Ya estas registrado, te damos la bienvenida ${nombreUsuario}.`);

            return ([nombreUsuario, contrasenhaUsuario]);
        }

        function iniciarSesion() {
            /*
                * Verifica el inicio de sesion del usuario (max 3 intentos).
            */

            for (let i = 3; i > 0; i--) {

                let solicitaUsuario = prompt("Ingrese su nombre de usuario");
                let solicitaContrasenha = prompt("Ingrese su contrasenha");

                if (esCorrectoElInicioDeSesion(solicitaUsuario, solicitaContrasenha)) {

                    alert(`Ingresaste al sistema.`);
                    break;
                } else {

                    chequearIntentos(i);
                }
            }
        }

        function esCorrectoElInicioDeSesion(usuario, contrasenha) {
            /*
                * Indica si el usuario y contraseña son correctos.
                - usuario: String.
                - contrasenha: String.
                # Bool.
            */

            return (usuario == infoUsuario[0] && contrasenha == infoUsuario[1]);
        }

        function chequearIntentos(cantidadIntentos) {
            /*
                * Verifica la cantidad de intentos restantes.
                - cantidadIntentos: Int.
            */

            if (cantidadIntentos - 1 == 0) {

                alert("Ya no te quedan más intentos, vuelve a intentarlo más tarde.");
            } else {

                alert(`El usuario o contraseña ingresado es incorrecto, vuelva a intentarlo. Le quedan ${cantidadIntentos - 1} intentos.`);
            }
        }

        let solicitaUsuario = prompt("Cree un nombre de usuario");
        let solicitaContrasenha = prompt("Cree una contrasenha");
        let infoUsuario = registrarUsuario(solicitaUsuario, solicitaContrasenha);

        iniciarSesion();

    </script>

Mejorando el código de Ismael xD

<meta charset="UTF-8">


<h1> Inicio de Sesion en Alura </h1>

<br> <br>

<script>

    function saltarlinea() {

        document.write("<br>");
    }

    function imprimir(frase) {

        document.write(frase);
        saltarlinea();
    }


    var inicioDeSesionRegistrado = "alura";
    var contrasenhaRegistrada = "alura321";
    var totalIntentos = 3;



    for(intentos = 1; intentos <= 3; intentos++){

        var inicioDeSesionIngresado = prompt("Ingrese su usuario");
        var contrasenhaIngresada = prompt("Ingrese su contraseña");

        if( (inicioDeSesionRegistrado == inicioDeSesionIngresado) && (contrasenhaRegistrada == contrasenhaIngresada)) {
            alert("Bienvenido al sistema " + inicioDeSesionIngresado);
            break
        }
        else {
           alert("inicio de sesión inválido. Favor intente de nuevo. (Intentos restantes: " + [totalIntentos - intentos] + ")");
        }

       if (intentos == 3 && inicioDeSesionRegistrado != inicioDeSesionIngresado && (contrasenhaRegistrada != contrasenhaIngresada)) {
           alert("Su cuenta a quedado inhabilitada, Vuelva a intentar en 24hr")
       }

    }
    if( (inicioDeSesionRegistrado == inicioDeSesionIngresado) && (contrasenhaRegistrada == contrasenhaIngresada)) {
        imprimir("Bienvenido joven, puede retomar los cursos");
    }else{

        imprimir("Mamaste wey, encima era el ultimo dia para terminar los cursos");

    }    
</script>