Snake
Un puzzle por niveles con gravedad, escrito en Java sobre Swing.
No es el Snake de arcade: aquí la serpiente cae si se queda sin suelo y cada nivel es un problema que resolver hasta llegar a la manzana. Hecho sin motor de juego, con el bucle, el dibujado y la entrada de teclado a mano.

El problema
Era mi primer juego y quería entender qué hay debajo cuando no hay motor que lo resuelva por ti: cómo se mantiene un bucle a ritmo constante, cómo se dibuja un fotograma y, sobre todo, cómo representar un mundo con reglas para que esas reglas queden en unas pocas líneas en vez de en una maraña de condicionales.
Stack
- Java 19
- Swing
- Graphics2D
Decisiones
El mapa es la estructura de datos
Un nivel es un array de cadenas donde cada carácter es una casilla: B bloque, - vacío, S cabeza, T cuerpo, A manzana. El estado del juego no vive en objetos aparte, vive en el mapa, y moverse es reescribir caracteres. El efecto secundario es que los niveles se dibujan como arte ASCII dentro del código y se leen de un vistazo.
La gravedad, un recorrido del mapa
Caer es «seguir bajando mientras la casilla de abajo esté vacía». Con el mundo representado así, la mecánica que da personalidad al juego cabe en un bucle de cinco líneas.
Sin motor, a propósito
JFrame y JPanel para la ventana, Graphics2D para pintar y un KeyListener para el teclado. Elegir la vía difícil era el objetivo: al no delegar en una librería, el bucle de juego y el refresco de pantalla dejaron de ser magia.