Bloque de aprendizaje · Detalle
Bomberman ligero: Bomba en cuadrícula
Este bloque de aprendizaje introduce conceptos centrales del desarrollo de juegos basados en cuadrículas en Python 2 usando frameCraft. El foco está en el modelado paso a paso del campo de juego, el movimiento, la lógica de bombas, las explosiones y los estados del juego en un proyecto de Bomberman ligero intencionalmente pequeño.

Desarrollo de proyecto con soporte de IA
Programación estructurada con Codificación con IA y ProtoTypeFirst
Este curso fue desarrollado específicamente para aprendices que desean programar de forma estructurada con soporte de IA y mejorar aún más el código existente.
Codificación con IA en estado del proyecto
La codificación con IA integra una IA consciente del contexto directamente en CodeRoom. Amplía el código existente, explica los errores, establece cambios dirigidos y apoya el desarrollo adicional en el estado actual del proyecto.
Desarrollo de código transparente
El curso se enfoca en el soporte didácticamente integrado, cambios transparentes y resultados inmediatamente testables. Las sugerencias, los cambios y las versiones permanecen transparentes para la guía instruccional.
Formato ProtoTypeFirst
Todo el contenido comienza con un prototipo funcional que se desarrolla gradualmente mediante codificación asistida por IA, de modo que cada extensión empieza desde un punto visible.
Introducción
El siguiente fragmento muestra la entrada del módulo de lección en forma abreviada.
No comienzas con un juego terminado, sino con una obra en construcción preparada. La escena ya está en marcha, mostrando un título, un campo de juego rectangular simple, una figura de reemplazo y un marcador. El juego real de Bomberman se crea únicamente mediante tus modificaciones utilizando el Programación Estructurada con Codificación Asistida por IA y ProtoTypeFirst.
Clasificación didáctica
El módulo está clasificado de forma compacta en términos de contenido e instrucción práctica.
Objetivo subjetivo
El módulo hace visible el desarrollo de un juego basado en rejilla como resultado de pequeños pasos de modelado testables. Los conceptos centrales son la conversión de rejilla a píxel, lógica de juego basada en estados, listas de datos para objetos del juego y la separación de reglas de inicio y reglas de ejecución.
Desarrollo de competencias
- Modelado: Los campos de rejilla, las figuras de juego, las bombas y los bloques se representan como datos estructurados en el proyecto.
- Algoritmización: El movimiento, bloqueo, cuenta regresiva, explosión y condiciones de victoria surgen de comprobaciones claras de reglas.
- Abstracción: Una función auxiliar para convertir posiciones de rejilla a píxeles reduce repeticiones y hace comprensible la lógica de coordenadas.
- Prueba: Cada extensión puede ser verificada y evaluada por su efecto sobre el prototipo visible.
Valor añadido del profesor
- La prototipo de inicio funcional proporciona un punto claro de partida para extensiones paso a paso.
- La secuencia de tareas descompone un sistema de juego en sub-mecanismos manejables.
- Las tareas de extensión permiten diferenciar mediante enemigos, estados objetivo, reinicios y puntos.
Secuencia de la unidad de lección
Las tareas se presentan en el orden del JSON y se resumen como pasos de desarrollo del proyecto.
Hacer visibles las líneas de malla
El área existente del campo de juego se complementa con simples líneas de malla. Esto convierte el espacio reservado en una superficie de juego claramente estructurada sin necesidad de construir reglas o colisiones aún.
Diseñar al jugador como una figura de Bomberman
La figura de marcador se desarrolla gráficamente en una pequeña figura similar a Bomberman. La posición y la lógica permanecen sin cambios, permitiendo trabajar por separado en la representación y el comportamiento.
Guardar la posición raster del jugador
Se crean valores propios de escena para columna y fila del jugador. Esta estructura de datos prepara anticipadamente el movimiento campo a campo más adelante sin mover aún automáticamente la figura.
Alinear al jugador con el campo raster
La posición inicial de la figura se calcula a partir de la columna de malla, fila de malla y tamaño del campo. Esto hace que por primera vez el objeto de juego sea visible sobre el modelo de cuadrícula del tablero.
Convertir la posición raster en posición pixel
Una función auxiliar calcula el centro en píxeles de una celda de malla a partir de columna y fila. Esta conversión central se utiliza luego para la posición del jugador y constituye la base para otros objetos.
Implementar movimiento en una sola casilla del grid
Las acciones de dirección modifican la posición rasterizada almacenada cada vez por un campo. La figura se reubicará luego mediante la función de conversión, sin comprobación de paredes ni animación aún.
Movimiento desbloqueado
Un bloqueo simple de movimiento impide que un botón de dirección mantenido active más pasos en cada fotograma. Solo después de soltarlo será posible realizar un nuevo paso único.
Preparar paredes fijas
Se crea una lista de campos de paredes fijas y se muestran sobre la cuadrícula. Las paredes aún no bloquean el movimiento, pero se introducen como objetos del juego por separado.
Bloquear movimiento contra paredes
La regla de movimiento verifica antes de cada paso si el campo objetivo está en la lista de paredes. El jugador podrá moverse solo a campos libres.
Mostrar bloques destructibles
Además de las paredes fijas, se añade una lista de bloques destructibles. Estos campos reciben su propia visualización, pero inicialmente carecen de lógica de explosión o eliminación.
Colocar bomba como objeto de datos
Al colocar una bomba, se almacena una entrada con la posición actual del jugador. Inicialmente, solo se permite una bomba a la vez; visibilidad, contador y explosión serán añadidas más adelante.
Colocar una bomba solo una vez por presionar el botón
Un bloqueo de bombas impide que un botón de bomba mantenido cree nuevas entradas repetidamente. La colocación solo se libera nuevamente tras soltar la acción.
Hacer visible la bomba durante la ejecución
Las entradas existentes de bombas se renderizan como caracteres durante el juego. La tarea muestra claramente que los objetos dinámicos no pueden configurarse solo al inicio de la escena.
Añadir contador de bombas
Cada bomba recibe un contador temporal que disminuye con el tiempo de marco. Después de su expiración, se marca para explotar sin dibujar la explosión aún.
Mostrar explosión cruzada
De una bomba preparada, surge una forma corta en cruz de campos de explosión. La eliminación de bloques y el daño aún están excluidos para que la geometría de la explosión pueda mostrarse aislada.
Eliminar bloques mediante explosión
Los campos de explosión se comparan con los bloques destructibles. Solo los bloques afectados se eliminan de la lista; las paredes sólidas permanecen sin cambios.
Mostrar puntos por bloques destruidos
Se añade un valor de puntos y una pantalla HUD. Los puntos aumentan cuando un bloque destructible desaparece mediante una explosión.
Comprobar daño al jugador
La lógica del juego verifica si la posición del jugador está sobre un campo de explosión. En este caso, se establece el estado de pérdida y se muestra un mensaje simple de Game Over.
Añadir enemigos simples
Se añade un enemigo como su propio campo de cuadrícula y se muestra en el campo de juego. Aún no se mueve ni causa daño, pero amplía inicialmente el modelo de objetos del juego.
Añadir objetivo de nivel y condición de victoria
Se define un objetivo simple: si todos los bloques removibles han sido eliminados, el estado del juego cambia a ganado. Un mensaje visible de victoria hace reconocible el final del nivel.
Reiniciar mediante teclado y toque
Una acción de inicio o reinicio se conecta con el teclado y el toque. Después de un estado ganado o perdido, una pulsación de tecla inicia la escena nuevamente de forma segura.
Fragmento de código
El fragmento muestra la estructura del estado preparado y el lugar donde se añadirán gradualmente movimiento, bombas y reglas.
| |
El bloque de construcción apoya una organización clara de lecciones porque cada extensión se basa en un proyecto en curso y produce resultados verificables. Es posible la diferenciación mediante adversarios adicionales, condiciones de objetivo, puntos o lógica de reinicio.
Solicite acceso demo y pruebe el bloque de construcción en su propio contexto de curso.