Logica_Celda.js

/**
 * Clase que representa una celda en un tablero de juego.
 * @class Celda
 * @memberof Logica
 */
class Celda {
    /**
     * Constructor de la celda.
     * @param {number} fila - fila
     * @param {number} columna - columna
     * @param {*} contenido - contenido de la celda (puede ser null)
     */
    constructor(fila, columna, contenido = null) {
        this.fila = fila;
        this.columna = columna;
        this.contenido = contenido; // podría ser una pieza, item, sprite,etc.
    }

    /**
     * Determina si la celda está vacía.
     * @returns {boolean} - true si la celda está vacía, false en caso contrario
     */
    estaVacia() {
        return this.contenido === null; //comparamos valor y tipo
    }

    /**
     * Setea el contenido de la celda.
     * @param {*} nuevoContenido - nuevo contenido de la celda
     */
    setContenido(nuevoContenido) {
        this.contenido = nuevoContenido;
    }

    /**
     * Limpia el contenido de la celda.
     */
    limpiar() {
        this.contenido = null;
    }

    /**
     * Devuelve el contenido de la celda.
     * @returns {*} - contenido de la celda
     */
    getPieza(){
        return this.contenido;
    }

    /**
     * Devuelve la posición de la celda.
     * @returns {{fila: number, col: number}} - posición de la celda
     */
    getPosicion(){
        return {fila: this.fila, col: this.columna};
    }

    /**
     * Devuelve el tipo de la pieza en la celda.
     * @returns {string} - tipo de la pieza en la celda, o cadena vacía si la celda está vacía
     */
    getTipo(){
        if (!this.estaVacia()){
            return this.contenido.getTipo();
        }
        return "";
    }
}

export default Celda;