Skip to content

The objective of this game is to utilize concepts from the object-oriented programming paradigm, including polymorphism, message passing, encapsulation, classes, objects, attributes, methods, inheritance, and abstraction. The game involves avoiding obstacles (cars) to collect as many coins as possible, allowing the player to progress through levels

Notifications You must be signed in to change notification settings

ignaciopieroni/wollok-game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
Puntos (1 Moneda = 10 Puntos) 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

About

The objective of this game is to utilize concepts from the object-oriented programming paradigm, including polymorphism, message passing, encapsulation, classes, objects, attributes, methods, inheritance, and abstraction. The game involves avoiding obstacles (cars) to collect as many coins as possible, allowing the player to progress through levels

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages