Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Java / Proyectos / Rompecabezas [Código Fuente]

Rompecabezas [Código Fuente]

Por jc mouse miércoles, abril 25, 2012

Hace tiempo me pidieron el código fuente de un juego de Puzzle de Neon Genesis Evangelión, este juego es completo, tiene sonido, registro de jugadas, se pueden cargar diferentes juegos de imágenes mediante el uso de XML, etc, sin embargo al ser tan completo contiene muchas lineas de código y también muchas clases, ademas de hacer uso de algunas librerías externas, todo esto hace que su estudio sea mucho más extenso y complicado por programadores novatos, así que considero mucho mejor dejarles un proyecto mucho más sencillo y mucho más entendible pero no por eso menos interesante, al fin y al cabo lo que interesa conocer es como programar un rompecabezas, ya el que quiera después le puede agregar sonido, contador de movidas y demás complementos que vea por conveniente.

Puzzle java

El proyecto está comentado, sin embargo no esta demás algunas aclaraciones.

  • Realizado en Netbeans 6.9
  • No utiliza ninguna librería externa

Respecto al juego tenemos:

El proyecto esta estructurado en las siguientes paquetes y clases

- jcPuzzleSample
----- Game.java
----- Main.java
----- frmPrincipal.java
- pieza
----- btnPieza.java
- pieza.rec
----- logo.jpg
----- vacio.jpg
- puzzle
----- puzzle.game1
----- puzzle.game2

Game: En esta clase se encuentra la lógica del juego. El juego funciona bajo una matriz de 3×3, sin embargo puede modificarse para el tamaño que se desee.

El juego funciona de la siguiente manera:

Un array de tipo int[] win = {1,2,3,4,5,6,7,8,-1}  almacena las posiciones ganadoras del juego, es decir el puzzle completamente armado, otro array int[] pos_juego = new int[win.length] , del mismo tamaño que el anterior va almacenando las diferentes posiciones que pueden tomar las casillas en el transcurrir del juego, se puede advertir un elemento «-1» en ambos array, este simboliza una casilla vacia.

Ten en cuenta que si bien se hace uso de array, estamos hablando de una matriz 3×3

Cuando se hace clic en una casilla, esta busca un espacio libre (casilla vacía) donde moverse,  si la encuentra se desplaza a esa posición actualizando las posiciones de las casillas almacenadas en la variable «pos_juego», si no existe ninguna posición libre, se queda donde esta, el juego finaliza cuando se termina de armar el puzzle, osea cuando las variables win y pos_juego son iguales.

frmPrincipal: Es un JFrame, la interfaz del juego.

btnPieza: esta clase es un JButton, con esta boton formaremos una matriz de controles para el puzzle.

puzzle: es un paquete el cual tiene dentro otros dos paquetes game1 y game2, estos paquetes almacenan las imagenes del rompecabezas.

Eso es todo, el juego ocupa tan solo tres clases en comparación del juego de Neón Genesis que tiene 14 clases, pero estas tres clases son suficientes para realizar un rompecabezas.

Si no te quedo claro, échale un ojo al siguiente video 🙂

Descarga el juego AQUI

El proyecto en java/Netbeans 6.9 AQUI

Tags

Artículos similares

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el[...]

Codigo de Control en Visual Basic | Impuestos Bolivia

En esta oportunidad dejamos las fuentes del Generador de Código de Control de Impuestos Bolivia (Facturación Virtual), e[...]

Convertir voz a texto con Android

En este post realizaremos una aplicación que pueda capturar nuestra voz y convertir en texto Pasar voz a texto con Andro[...]

base de datos multiple – parte II

Continuación del tutorial «Utiliza 2 bases de datos diferentes en una aplicación» La Interfaz frmSelected.java: Haciendo[...]

Introducción a Retrofit: Cliente para consumir un API REST

La página oficial de Retrofit, se describe así misma como «Un cliente REST seguro para Android y Java».  Y es así, ya qu[...]

Juego de memoria para niños (Código Fuente)

En un post anterior, desarrollamos un swing para simular un efecto FLIP  y recibí algunos mensajes pidiéndome un ejemplo[...]