// Se desencadena cuando se hace click en la imagen | |
voltear(indiceFila, indiceImagen) { | |
// Si se está regresando una imagen a su estado original, detener flujo | |
if (this.esperandoTimeout) { | |
return; | |
} | |
// Si es una imagen acertada, no nos importa que la intenten voltear | |
if (this.memorama[indiceFila][indiceImagen].acertada) { | |
return; | |
} | |
// Si es la primera vez que la selecciona | |
if (this.ultimasCoordenadas.indiceFila === null && this.ultimasCoordenadas.indiceImagen === null) { | |
this.memorama[indiceFila][indiceImagen].mostrar = true; | |
this.ultimasCoordenadas.indiceFila = indiceFila; | |
this.ultimasCoordenadas.indiceImagen = indiceImagen; | |
return; | |
} | |
// Si es el que estaba mostrada, lo ocultamos de nuevo | |
let imagenSeleccionada = this.memorama[indiceFila][indiceImagen]; | |
let ultimaImagenSeleccionada = this.memorama[this.ultimasCoordenadas.indiceFila][this.ultimasCoordenadas.indiceImagen]; | |
if (indiceFila === this.ultimasCoordenadas.indiceFila && | |
indiceImagen === this.ultimasCoordenadas.indiceImagen) { | |
this.memorama[indiceFila][indiceImagen].mostrar = false; | |
this.ultimasCoordenadas.indiceFila = null; | |
this.ultimasCoordenadas.indiceImagen = null; | |
this.aumentarIntento(); | |
return; | |
} | |
// En caso de que la haya encontrado, ¡acierta! | |
// Se basta en ultimaImagenSeleccionada | |
this.memorama[indiceFila][indiceImagen].mostrar = true; | |
if (imagenSeleccionada.ruta === ultimaImagenSeleccionada.ruta) { | |
this.aciertos++; | |
this.memorama[indiceFila][indiceImagen].acertada = true; | |
this.memorama[this.ultimasCoordenadas.indiceFila][this.ultimasCoordenadas.indiceImagen].acertada = true; | |
this.ultimasCoordenadas.indiceFila = null; | |
this.ultimasCoordenadas.indiceImagen = null; | |
// Cada que acierta comprobamos si ha ganado | |
if (this.haGanado()) { | |
this.indicarVictoria(); | |
} | |
} else { | |
// Si no acierta, entonces giramos ambas imágenes | |
this.esperandoTimeout = true; | |
setTimeout(() => { | |
this.memorama[indiceFila][indiceImagen].mostrar = false; | |
this.memorama[indiceFila][indiceImagen].animacion = false; | |
this.memorama[this.ultimasCoordenadas.indiceFila][this.ultimasCoordenadas.indiceImagen].mostrar = false; | |
this.ultimasCoordenadas.indiceFila = null; | |
this.ultimasCoordenadas.indiceImagen = null; | |
this.esperandoTimeout = false; | |
}, SEGUNDOS_ESPERA_VOLTEAR_IMAGEN * 1000); | |
this.aumentarIntento(); | |
} | |
}, |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment