<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Juego Secreto - Arrays</title>
</head>
<body>
<h1>Juego de Secreto</h1>
<input type="text">
<button>Verificar si acertó con el secreto</button>
<script>
//numero aleatoria entre 0-10
// creamos un arreglo con n numeros aleatorios
var cantidad=5;
var secreto=[];
secreto=arregloNumerosAleatorios(cantidad)
console.log(secreto);
// the user is going to define the value secret
//Usamos el querySelector con el fin de capturar los elementos del DOM
//En el caso de que se de click al botton damos inicio a la funcion verificar
var input=document.querySelector("input");
var button=document.querySelector("button");
//El metodo "focus" hace que el cursor se centre en la caja de texto de input
input.focus();
button.onclick=verificar;
// Declaracion de funciones
function saltoLinea(){
document.write('<br>');
}
function imprimir(frase){
saltoLinea();
document.write(frase);
}
function verificar(){
// Verificamos si es correcto
//Accedemos en el valor contenido en el input y lo capturamos
bandera=false;
secreto.forEach(item=>{
var numero=input.value;
if(parseInt(numero)===item){
bandera=true;
// Esta es una manera de finalizar el ciclo del forEach mediante el uso de return
return alert("Felicitaciones acerto!!");
}
});
if(!bandera){
alert('Error!');
}
//limpiar valor en el input
input.value="";
//
input.focus();
}
// Crea numero aleatorios
function numeroAletorio(){
return Math.round(Math.random()*10)
}
// Crea una lista con numeros aleatorios
function arregloNumerosAleatorios(cantidad){
var lista=[]
for(var i=0;i<cantidad;i++){
var flag=false;
var numero=numeroAletorio();
console.log(numero)
// Para validar la repeticion de numeros aleatorios
for(var j=0;j<lista.length;j++){
if(numero==lista[j]){
flag=true;
}
}
if(!flag && numero!=0){
lista.push(numero);
}else{
//En el caso que se detecte repeticiones se debe restar una iteracion a nuestro ciclo for
//Esto para que se respete la cantidad de numeros aleatorios solicitados
i--;
}
}
return lista;
}
</script>
</body>
</html>