GameEngine

scalatetris.engine.GameEngine
sealed class GameEngine(val boardSize: Size)

Motor principal del juego Tetris que maneja toda la lógica y el estado del juego.

Esta clase gestiona las interacciones del usuario, el movimiento de piezas, detección de colisiones, aumento de nivel y dificultad, mantenimiento del historial de movimientos, y todas las reglas del juego.

Value parameters

boardSize

Tamaño del tablero de juego (ancho y alto)

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

def IsRunning: Boolean

Verifica si el juego está en ejecución o pausado.

Verifica si el juego está en ejecución o pausado.

Attributes

Returns

true si el juego está pausado, false si está en ejecución

def boardIsRunning: Boolean

Verifica si el tablero está en condición de juego activo.

Verifica si el tablero está en condición de juego activo.

Attributes

Returns

true si el juego no ha terminado, false si es game over

def continue(): Unit

Continúa el juego después de una pausa, actualizando el tiempo total pausado.

Continúa el juego después de una pausa, actualizando el tiempo total pausado.

Solo permite continuar si el tablero todavía está en juego.

Attributes

def getHoldStone: Option[Stone]

Obtener la pieza guardada con la función "hold".

Obtener la pieza guardada con la función "hold".

Attributes

Returns

La pieza guardada, o None si no hay ninguna

def getLevel: Int

Obtiene el nivel actual del juego.

Obtiene el nivel actual del juego.

Attributes

Returns

El nivel actual (0-29)

def getSpeedFactor: Int

Calcula el factor de velocidad basado en el nivel actual.

Calcula el factor de velocidad basado en el nivel actual.

Este factor determina qué tan rápido caen las piezas, siguiendo una curva de dificultad inspirada en la versión NES de Tetris pero adaptada:

  • Niveles 0-9: La velocidad aumenta linealmente
  • Niveles 10-19: La velocidad aumenta más lentamente
  • Niveles 20-28: Pequeños ajustes de velocidad
  • Nivel 29: "Kill screen" con caída instantánea

Attributes

Returns

Valor que representa la velocidad (valores más bajos = mayor velocidad)

def holdCurrentStone(): Unit
def isGameRunning: Boolean

Verifica si el juego está en ejecución activa.

Verifica si el juego está en ejecución activa.

Attributes

Returns

true si el juego está corriendo y el tablero es válido

def moveDown(): Boolean

Intenta mover la pieza activa hacia abajo. Si no puede moverse (colisión), fija la pieza, elimina filas completas, actualiza puntuación y genera una nueva pieza.

Intenta mover la pieza activa hacia abajo. Si no puede moverse (colisión), fija la pieza, elimina filas completas, actualiza puntuación y genera una nueva pieza.

Este método es el núcleo del ciclo de juego, gestionando:

  • Movimiento hacia abajo
  • Fijación de piezas al llegar al fondo
  • Eliminación de filas completas
  • Actualización de nivel basado en filas eliminadas
  • Comprobación de fin de juego

Attributes

def moveLeft(): Unit

Mueve la pieza activa a la izquierda si es posible.

Mueve la pieza activa a la izquierda si es posible.

Reproduce un efecto de sonido al mover lateralmente.

Attributes

def moveRight(): Unit

Mueve la pieza activa a la derecha si es posible.

Mueve la pieza activa a la derecha si es posible.

Reproduce un efecto de sonido al mover lateralmente.

Attributes

Devuelve la próxima pieza que aparecerá en el juego.

Devuelve la próxima pieza que aparecerá en el juego.

Attributes

Returns

La pieza que se mostrará en la vista previa

def pause(): Unit

Pausa el juego y registra el tiempo de inicio de la pausa.

Pausa el juego y registra el tiempo de inicio de la pausa.

Detiene la acción del juego y la música, permitiendo acceder a funciones como el historial.

Attributes

def points: List[Point]

Obtiene la lista de todos los puntos ocupados en el tablero.

Obtiene la lista de todos los puntos ocupados en el tablero.

Attributes

Returns

Lista de puntos ocupados por todas las piezas

def restart(): Unit

Reinicia el tablero y limpia el historial.

Reinicia el tablero y limpia el historial.

Reinicia todos los aspectos del juego a sus valores iniciales:

  • Nuevo tablero vacío
  • Estadísticas a cero
  • Nivel a cero
  • Elimina pieza guardada
  • Limpia historial

Attributes

def rotateLeft(): Unit
def rotateRight(): Unit

Obtiene las estadísticas actuales del juego, ajustando el tiempo de pausa.

Obtiene las estadísticas actuales del juego, ajustando el tiempo de pausa.

Attributes

Returns

Estadísticas actualizadas con tiempo de pausa aplicado

def stones: List[Stone]

Obtiene la lista de todas las piezas en el tablero.

Obtiene la lista de todas las piezas en el tablero.

Attributes

Returns

Lista de piezas, donde la primera es la pieza activa

Concrete fields