Board

scalatetris.components.Board
class Board

Clase que representa el tablero de juego de Tetris.

Esta clase es inmutable y maneja:

  • El estado actual del tablero
  • Las piezas activas y fijas
  • La siguiente pieza (preview)
  • Las estadísticas del juego
  • El estado de juego (activo/terminado)

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Constructors

def this(size: Size, firstStone: Stone, firstPreview: Stone)

Constructor principal que inicializa un nuevo tablero.

Constructor principal que inicializa un nuevo tablero.

Value parameters

firstPreview

Primera pieza en preview

firstStone

Primera pieza activa

size

Dimensiones del tablero

Attributes

Concrete methods

def forceNewStone(preview: Stone): Board

Fuerza la aparición de una nueva pieza en el tablero.

Fuerza la aparición de una nueva pieza en el tablero.

Value parameters

preview

Nueva pieza para el preview

Attributes

Returns

Nuevo tablero con la nueva pieza activa

def points: List[Point]

Obtiene todos los puntos ocupados en el tablero.

Obtiene todos los puntos ocupados en el tablero.

Attributes

Returns

Lista de puntos ocupados por todas las piezas

def update(stones: List[Stone]): Board

Actualiza el estado del tablero con una nueva lista de piezas.

Actualiza el estado del tablero con una nueva lista de piezas.

Value parameters

stones

Nueva lista de piezas

Attributes

Returns

Nuevo tablero con las piezas actualizadas y estadísticas incrementadas

def update(stones: List[Stone], numberOfRowsRemoved: Int, preview: Stone): Board

Actualiza el tablero después de eliminar filas o insertar una nueva pieza.

Actualiza el tablero después de eliminar filas o insertar una nueva pieza.

Este método:

  • Coloca la pieza preview en el centro como nueva pieza activa
  • Verifica si hay game over (colisión o pieza en fila superior)
  • Actualiza las estadísticas según las filas eliminadas

Value parameters

numberOfRowsRemoved

Número de filas que se eliminaron

preview

Nueva pieza para el preview

stones

Lista de piezas fijas

Attributes

Returns

Nuevo tablero actualizado

def updateStones(stones: List[Stone]): Board

Actualiza directamente la lista de piezas sin modificar otros estados.

Actualiza directamente la lista de piezas sin modificar otros estados.

Value parameters

stones

Nueva lista de piezas

Attributes

Returns

Nuevo tablero con las piezas actualizadas

Concrete fields

val isGameRunning: Boolean
val preview: Stone
val size: Size
val stones: List[Stone]