-
-
Save parzibyte/32d1c47694ad0a0b6b3d54bfad4aa998 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
# Si no hay juego iniciado, ignoramos el clic | |
if not juego_iniciado: | |
continue | |
""" | |
Ahora necesitamos a X e Y como índices del arreglo. Los índices no | |
son lo mismo que los pixeles, pero sabemos que las imágenes están en un arreglo | |
y por lo tanto podemos dividir las coordenadas entre la medida de cada cuadro, redondeando | |
hacia abajo, para obtener el índice. | |
Por ejemplo, si la medida del cuadro es 100, y el clic es en 140 entonces sabemos que le dieron | |
a la segunda imagen porque 140 / 100 es 1.4 y redondeado hacia abajo es 1 (la segunda posición del | |
arreglo) lo cual es correcto. Por poner otro ejemplo, si el clic fue en la X 50, al dividir da 0.5 y | |
resulta en el índice 0 | |
""" | |
x = math.floor(xAbsoluto / medida_cuadro) | |
y = math.floor(yAbsoluto / medida_cuadro) | |
# Primero lo primero. Si ya está mostrada o descubierta, no hacemos nada | |
cuadro = cuadros[y][x] | |
if cuadro.mostrar or cuadro.descubierto: | |
# continue ignora lo de abajo y deja que el ciclo siga | |
continue | |
# Si es la primera vez que tocan la imagen (es decir, no están buscando el par de otra, sino apenas | |
# están descubriendo la primera) | |
if x1 is None and y1 is None: | |
# Entonces la actual es en la que acaban de dar clic, la mostramos | |
x1 = x | |
y1 = y | |
cuadros[y1][x1].mostrar = True | |
pygame.mixer.Sound.play(sonido_voltear) | |
else: | |
# En caso de que ya hubiera una clickeada anteriormente y estemos buscando el par, comparamos... | |
x2 = x | |
y2 = y | |
cuadros[y2][x2].mostrar = True | |
cuadro1 = cuadros[y1][x1] | |
cuadro2 = cuadros[y2][x2] | |
# Si coinciden, entonces a ambas las ponemos en descubiertas: | |
if cuadro1.fuente_imagen == cuadro2.fuente_imagen: | |
cuadros[y1][x1].descubierto = True | |
cuadros[y2][x2].descubierto = True | |
x1 = None | |
x2 = None | |
y1 = None | |
y2 = None | |
pygame.mixer.Sound.play(sonido_clic) | |
else: | |
pygame.mixer.Sound.play(sonido_fracaso) | |
# Si no coinciden, tenemos que ocultarlas en el plazo de [segundos_mostrar_pieza] segundo(s). Así que establecemos | |
# la bandera. Como esto es un ciclo infinito y asíncrono, podemos usar el tiempo para saber | |
# cuándo fue el tiempo en el que se empezó a ocultar | |
ultimos_segundos = int(time.time()) | |
# Hasta que el tiempo se cumpla, el usuario no puede jugar | |
puede_jugar = False | |
comprobar_si_gana() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment