Actividad 4: El Nivel
En esta ocasión trabajaremos para poder crear niveles de forma dinámica. Para ello, necesitaremos una clase que nos permita generar los niveles y su matriz de ladrillos.
Instrucciones
Crea el paquete
org.brick_breaker.gamey dentro de él la claseLevel.La clase
Leveldebe tener las siguientes constantes:ROW_MARGIN: Margen entre filas de ladrillos. Debe ser de 18 píxeles.COLUMN_MARGIN: Margen entre columnas de ladrillos. Debe ser de 19 píxeles.LEVEL_WIDTH: Ancho del nivel en bloques. Debe ser de 10 bloques.LEVEL_HEIGHT: Alto del nivel en bloques. Debe ser de 10 bloques.
La clase
Leveldebe tener la siguiente variable estática:levelNumber: Número de nivel actual. Debe ser de tipointe inicializarse en 1.
La clase
Leveldebe tener los siguientes atributos:bricks: Matriz de ladrillos del nivel. Debe ser de tipoBrick[][].backGroundName: Nombre de la imagen de fondo del nivel. Debe ser de tipoString.musicName: Nombre de la música de fondo del nivel. Debe ser de tipoString.currentLevel: Número de nivel actual. Debe ser de tipoint.
Su constructor debe recibir ambos valores de tipo
Stringy asignarlos a los atributos correspondientes.- public Level(String backgroundName, String musicName) { // Asignación de valores a los atributos this.backgroundName = backgroundName; this.musicName = musicName; }
Se debe inicializar la matriz de ladrillos como un arreglo de
Brickde tamañoLEVEL_WIDTHporLEVEL_HEIGHT.- public Level(String backgroundName, String musicName) { // Asignación de valores a los atributos // Inicialización de la matriz de ladrillos bricks = new Brick[LEVEL_WIDTH][LEVEL_HEIGHT]; }
Se debera asignar a
currentLevelel valor delevelNumber. Y sumarle 1 alevelNumber.- public Level(String backgroundName, String musicName) { // Asignación de valores a los atributos // Inicialización de la matriz de ladrillos currentLevel = levelNumber++; }
Se deberá generar la función
populateLevelque no reciba parámetros y que genere los ladrillos del nivel. Misma que deberá ser llamada en el constructor.- public Level(String backgroundName, String musicName) { // Asignación de valores a los atributos // Inicialización de la matriz de ladrillos // Aumentar el nivel actual // Generar los ladrillos del nivel populateLevel(); }
populateLevel
La función populateLevel deberá generar los ladrillos del nivel. Para ello, deberá seguir los siguientes pasos:
Crear una variable de tipo
BrickTypellamadabrickType.Crear una variable de tipo
PointllamadabrickPosition.Crear un ciclo
forque recorra las filas del nivel.Dentro del ciclo
forcrear otro cicloforque recorra las columnas del nivel.Dentro del ciclo
for:Asignar a
brickTypeun valor aleatorio deBrickType. Mediante la siguiente fórmula:int random = Randomized.randomInt(1, BrickType.values().length) - 1; brickType = BrickType.values()[random];Asignar a
brickPositionla posición del ladrillo en la matriz. Mediante la siguiente fórmula:brickPosition = new Point(column * Brick.BRICK_WIDTH + ROW_MARGIN, row * Brick.BRICK_HEIGHT + COLUMN_MARGIN);Crear un nuevo ladrillo con los valores de
brickTypeybrickPosition. Mediante la siguiente fórmula:bricks[row][column] = new Brick(brickPosition, "", brickType);
Al finalizar la función, se deberá llamar desde el constructor. Deberá quedar de la siguiente forma:
public Level(String backgroundName, String musicName) { // Asignación de valores a los atributos // Inicialización de la matriz de ladrillos // Aumentar el nivel actual // Generar los ladrillos del nivel populateLevel(); }
Con esto, ya tendrás la capacidad de generar niveles de forma dinámica. ¡A por ello!
La clase Randomized
Para poder generar números aleatorios, necesitaremos una clase que nos permita hacerlo. Para ello, crearemos la clase Randomized en el paquete org.brick_breaker.utils y con el siguiente contenido:
Con esta clase, podrás generar números aleatorios en el rango que desees. ¡A por ello!
Actividad
Para esta actividad, deberás implementar la clase Level siguiendo las instrucciones dadas. Además, deberás implementar la clase Randomized para poder generar números aleatorios. ¡Mucho éxito!
Entrega
Para entregar la actividad, deberás crear un archivo .zip con el siguiente contenido:
Archivos
.zipdel proyecto.Portada con datos de identificación.
Evidencias de ejecución de la creación de al menos un nivel.
Para ello, deberás crear una clase
Mainque cree un nivel y muestre los ladrillos generados.
Criterios de evaluación
Criterio | Descripción | Puntaje |
|---|---|---|
Portada | Contiene los datos de identificación del equipo | 5% |
Funcionalidad | La clase | 60% |
Evidencias | Muestra evidencias de la creación de al menos un nivel | 35% |
Total | Cumple con lo establecido en la actividad | 100% |
Fecha de entrega
Fecha límite de entrega: Viernes 21 de marzo de 2025 a las 11:59 p.m.