Created
August 7, 2019 02:51
-
-
Save parzibyte/911903de14ae13c70c57b39ed93cfa25 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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