Hola gente, necesito de su ayuda! Estoy en el proyecto "Cajero automático" y ya he cumplido algunos de los desafíos propuestos por Freddy...

Pregunta de la clase:
Santiago Cujaban

Santiago Cujaban

Pregunta
studenthace 6 años

Sin embargo, me he quedado estancado en el desafío de poder resetear el valor inicial de la cantidad de dinero que hay en la “caja”. Por ejemplo, si la cantidad total de la caja entre todos los billetes y sus respectivas cantidades me da 1065000$, cuando quiera retirar 100000$ el cajero tendrá que actualizar la cantidad total de la caja a 965000. ¿Cómo logro hacer eso 😦? Aquí abajo les dejo el código en HTML y JavaScript que tengo hasta ahora… Gracias por su atención! 😄 Espero que puedan ayudarme 😃

HTML:

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Cajero automático</title> </head> <body> <h1>Bienvenido a tu Bank E! :D</h1> <p>Aquí podrás retirar tu dinero de <strong>tu cuenta bancaria :)</strong></p> <p> <img src="cajero.gif" /> </p> <h2>Por favor, ingresa la cantidad de dinero que quieres retirar en pesos colombianos:</h2> <p> <input type="number" id="dinero" /> <p> <input type="button" value="Extraer" id="extraer" /> <input type="button" value="Refrescar Cajero" onclick="javascript:window.location.reload();"/> </p> </p> <p id="resultado"></p> <script src="cajero.js"></script> </body> </html>

JavaScript:

// clase Billete class Billete { constructor(v, c) // método constructor con variables v, c { this.imagen = new Image(); this.valor = v; // instancia.valor es igual a la variable v del constructor this.cantidad = c; // instancia.cantidad es igual a la variable c del constructor this.imagen.src = imagenes[this.valor]; } } var imagenes = []; imagenes["100000"] = "100mil.jpg"; imagenes["50000"] = "50mil.jpg"; imagenes["20000"] = "20mil.jpg"; imagenes["10000"] = "10mil.jpg"; imagenes["5000"] = "5mil.jpg"; imagenes["2000"] = "2mil.jpg"; imagenes["1000"] = "1mil.jpg"; var caja = []; caja.push( new Billete(100000, 5) ); caja.push( new Billete(50000, 5) ); caja.push( new Billete(20000, 5) ); caja.push( new Billete(10000, 10) ); caja.push( new Billete(5000, 15) ); caja.push( new Billete(2000, 15) ); caja.push( new Billete(1000, 10) ); existencia(); var entregado = []; var dinero; var div; var papeles; var resultado = document.getElementById("resultado"); var b = document.getElementById("extraer"); b.addEventListener("click", entregarDinero); function entregarDinero() { var t = document.getElementById("dinero"); dinero = parseInt(t.value); for(var b of caja) { if(dinero > 0) { div = Math.floor(dinero / b.valor); if(div > b.cantidad) { papeles = b.cantidad; } else { papeles = div; } entregado.push( new Billete(b.valor, papeles) ); dinero -= (b.valor * papeles); } } if(dinero > 0) { resultado.innerHTML = "Soy un cajero <strong>malo</strong>, he sido <strong>malo</strong> y no puedo darte esa cantidad :( <br /><hr />"; } else { resultado.innerHTML += "<p>Retiraste:<br /></p>"; for(var e of entregado) { if(e.cantidad > 0) { for(var bi = 1; bi <= e.cantidad ;bi++) { resultado.innerHTML += "<img src=" + e.imagen.src + " />" + "<br /><hr />"; } } } } existencia(); } // Aquí abajo tengo el supuesto contador, pero la verdad es que solo me muestra la cantidad total al inicio de la caja, pero no me muestra la cantidad total luego de retirar cierta cantidad de dinero function existencia() { var total = 0; for(var bi of caja) { total = total + bi.valor * bi.cantidad; } console.log(total); }
1 respuestas
para escribir tu comentario
    Federico Matías Mauro

    Federico Matías Mauro

    studenthace 6 años

    Lo que tendrías que hacer para que se actualize la cantidad de dinero es que cuando se retire por ejemplo un billete de 10 eliminarlo del array caja para que cuando lo cuente ya detecte que faltan billetes y muestre la cantidad correcta.

Curso Gratis de Programación Básica

Curso Gratis de Programación Básica

Programa desde cero, domina Javascript, entiende HTML y aprende de algoritmos. <strong>Sí, desde cero</strong>. Entenderás la lógica del código, cómo piensan los programadores y cómo programar juegos, proyectos y hasta robots y electrónica. Aprender a programar no es fácil, pero Platzi lo hace efectivo.

Curso Gratis de Programación Básica
Curso Gratis de Programación Básica

Curso Gratis de Programación Básica

Programa desde cero, domina Javascript, entiende HTML y aprende de algoritmos. <strong>Sí, desde cero</strong>. Entenderás la lógica del código, cómo piensan los programadores y cómo programar juegos, proyectos y hasta robots y electrónica. Aprender a programar no es fácil, pero Platzi lo hace efectivo.