Introducción
En este proyecto, aprenderás a crear un juego de rompecabezas interactivo utilizando JavaScript. El juego consiste en reorganizar las piezas del rompecabezas para reconstruir la imagen completa, brindando una experiencia atractiva y desafiante para los jugadores.
👀 Vista previa

🎯 Tareas
En este proyecto, aprenderás:
- Cómo configurar el entorno del proyecto y entender la estructura de archivos.
- Cómo implementar la funcionalidad de arrastrar y soltar para las piezas del rompecabezas.
- Cómo comprobar la terminación del rompecabezas y mostrar un mensaje de éxito en consecuencia.
- Cómo probar el proyecto completado y asegurar la correcta funcionalidad del juego.
🏆 Logros
Después de completar este proyecto, podrás:
- Crear un juego interactivo utilizando JavaScript.
- Entender los principios de la funcionalidad de arrastrar y soltar en el desarrollo web.
- Implementar la lógica para comprobar la terminación de una tarea y proporcionar retroalimentación al usuario.
- Adquirir experiencia en el trabajo con el Modelo de Objeto del Documento (DOM) y la manipulación de elementos HTML.
Configurar el entorno del proyecto
En este paso, configurarás el entorno del proyecto y entenderás la estructura de archivos.
Abra el entorno de experimentación y navegue hasta el directorio del proyecto
/home/labex/project.La estructura de directorios es la siguiente:
├── css ├── images ├── index.html └── js └── index.jsimageses la carpeta de imágenes del proyecto.csses la carpeta de estilos del proyecto.index.htmles la página principal.js/index.jses el archivo JavaScript donde debes agregar el código.
Haga clic en el botón Go Live en la esquina inferior derecha de WebIDE para ejecutar el proyecto.
Abra "Web 8080" en la parte superior de la VM y actualice manualmente para ver la página.
Implementar la funcionalidad de arrastrar y soltar
En este paso, implementarás la funcionalidad de arrastrar y soltar para las piezas del rompecabezas.
En el archivo
js/index.js, localiza la funcióndrop.Dentro de la función
drop, agrega el siguiente código para intercambiar las imágenes de la pieza del rompecabezas arrastrada y la pieza del rompecabezas destino:// Comprueba si la pieza del rompecabezas arrastrada no es la pieza del rompecabezas destino actual if (draggedPiece !== this) { // TODO // Guarda el estado actual de las piezas del rompecabezas arrastrada y destino let saveArr = [ [draggedPiece.children[0].src, draggedPiece.children[0].dataset.id], [this.children[0].src, this.children[0].dataset.id] ]; // Intercambia los atributos src y data-id de las imágenes draggedPiece.children[0].src = saveArr[1][0]; draggedPiece.children[0].dataset.id = saveArr[1][1]; this.children[0].src = saveArr[0][0]; this.children[0].dataset.id = saveArr[0][1]; } // Restablece la pieza del rompecabezas que se está arrastrando draggedPiece = null;Este código primero comprueba si la pieza del rompecabezas arrastrada no es la pieza del rompecabezas destino actual. Si es así, guarda el estado actual de las piezas del rompecabezas arrastrada y destino, luego intercambia los atributos
srcydata-idde las imágenes.
Verificar la terminación del rompecabezas
En este paso, implementarás la lógica para comprobar si el rompecabezas se ha completado con éxito y mostrar o ocultar el mensaje de éxito en consecuencia.
En el archivo
js/index.js, localiza la funcióndrop.En la función
drop, después del código que agregaste en el paso anterior, agrega el siguiente código:if (draggedPiece !== this) { // TODO //... // Obtiene los valores de data-id de todas las imágenes en el contenedor del rompecabezas let imgDataIdList = [...container.getElementsByTagName("img")].map( (item) => item.dataset.id ); // Comprueba si el rompecabezas está completado if (imgDataIdList.join(",") === "1,2,3,4,5,6,7,8,9") { // Muestra el mensaje de éxito successMessage.classList.remove("hide"); successMessage.classList.add("show"); } else { // Oculta el mensaje de éxito successMessage.classList.remove("show"); successMessage.classList.add("hide"); } }Este código primero obtiene los valores de
data-idde todas las imágenes en el contenedor del rompecabezas y comprueba si están en el orden correcto (del 1 al 9). Si es así, muestra el mensaje de éxito quitando la clasehidey agregando la claseshowal elemento del mensaje de éxito. En caso contrario, oculta el mensaje de éxito quitando la claseshowy agregando la clasehide.
Probar el proyecto completado
- Actualiza la página para ver el estado inicial del rompecabezas.
- Intenta arrastrar y soltar las piezas del rompecabezas para reorganizarlas.
- Observa cómo el mensaje de éxito aparece o desaparece según la terminación del rompecabezas.
- Asegúrate de que las piezas del rompecabezas se intercambien correctamente y que los atributos
srcydata-idde las imágenes se actualicen en consecuencia.
El efecto después de la terminación es el siguiente:

¡Felicitaciones! Has implementado con éxito el juego de rompecabezas utilizando el código proporcionado. Siente la libertad de explorar el proyecto más profundamente y experimentar con características adicionales o mejoras.
Resumen
¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



