Skip to content

Latest commit

 

History

History
86 lines (76 loc) · 4.07 KB

README.md

File metadata and controls

86 lines (76 loc) · 4.07 KB

Wollok Game: Pro Rider

Objetivo

El objetivo de este juego es utilizar conceptos del paradigma de programación orientado a objetos; polimorfismo, envío de mensajes, encapsulamiento, clases, objetos, atributos, métodos, herencia y abstracción. Este trata sobre esquivar obstáculos (autos) para capturar la mayor cantidad de monedas posibles y poder así pasar de nivel y ganar el juego (a medida que el nivel aumenta, los autos pasan más rápido).

Requerimientos para cada nivel:

Nivel 1 Nivel 2 Nivel "Prorider" Ganar
Monedas 0 100 200 300

Imagen del juego

img1

Movimiento

Presionar las teclas y para moverse hacia la izquierda y derecha respectivamente.

Estructura general del código

Objeto principal (juego): Gestiona la lógica central, niveles, entidades, eventos y la configuración del juego.

Clases auxiliares (Level, Auto, Moneda): Modelan las entidades del juego.

Objetos visuales (f1, victoria, derrota): Representan el estado del juego (auto principal, pantalla de victoria, pantalla de derrota).

Eventos periódicos (onTick): Se generan entidades (autos y monedas) y se actualizan sus posiciones periódicamente.

Generación Aleatoria de Entidades

Se utiliza el método nAleatoriosSinRepetir() para generar posiciones aleatorias en el eje X, evitando duplicados.
Las posiciones se asignan a las entidades (autos y monedas) antes de ser añadidas al tablero.

Niveles del Juego (clase Level):

Nivel 1:

• Tiempo de aparición de entidades: 1200 ms

• Intervalos de movimiento: 700 ms

Nivel 2:

• Tiempo de aparición de entidades: 1000 ms

• Intervalos de movimiento: 400 ms

Nivel Pro Rider:

• Tiempo de aparición de entidades: 1000 ms

• Intervalos de movimiento: 300 ms

Métodos Clave

iniciar(): Configura y comienza el juego.
configurarTeclas(): Asigna las teclas de movimiento.
agregarAuto(): Añade un auto al tablero.
agregarMoneda(): Añade una moneda al tablero.
limpiar(): Limpia las listas de entidades y posiciones aleatorias.
terminarCon(): Finaliza el juego (victoria o derrota).
actualizarNivelDe(): Actualiza el nivel en función de la puntuación del jugador.

Principios de POO Aplicados

Encapsulamiento: Cada entidad (Auto, Moneda, Level) maneja su propio comportamiento.
Polimorfismo: Por ejemplo la clase Auto y Moneda comprenden el mísmo método esChocadoPor() (la consecuencia es diferente para cada una).
Herencia: Aunque no hay una herencia explícita, los métodos reutilizan lógica común.
Abstracción: Cada método y objeto tiene una responsabilidad clara y específica.

Más imágenes del juego

img2 img3 img4 img5