package org.Models;

/**
 * Interface représentant une pièce courante du jeu Tetris.
 * Définit les méthodes pour obtenir et définir le motif de la pièce.
 */
public interface PieceCourante {
    abstract public boolean[][] getMotif();

    abstract public void setMotif(boolean[][] motif);

    static boolean[][] rotationHoraire(boolean[][] motif) {
        int taille = motif.length;
        boolean[][] resultat = new boolean[taille][taille];

        for (int i = 0; i < taille; i++) {
            for (int j = 0; j < taille; j++) {
                resultat[j][taille - 1 - i] = motif[i][j];
            }
        }

        return resultat;
    }

    static boolean[][] rotationAntiHoraire(boolean[][] motif) {
        int taille = motif.length;
        boolean[][] resultat = new boolean[taille][taille];

        for (int i = 0; i < taille; i++) {
            for (int j = 0; j < taille; j++) {
                resultat[taille - 1 - j][i] = motif[i][j];
            }
        }

        return resultat;
    }
}
