public class Rejilla{
    static final int VACIA        = 0;
    static final int BLOQUE       = 1;
//    static final int PIEZA        = 2;
    static final int OCUPADO      = 3;
    private int anchura;
    private int altura;
    public static int[][] celdas;
    
    Rejilla(int w,int h){
        anchura=w;
        altura=h;
        celdas= new int[anchura][altura];
        initRejilla();
    }
    
    public int getAnchura(){
        return anchura;
    }
    
    public int getAltura(){
        return altura;
    }
       
    public void assignTipoCelda(int x,int y,int valor){
        celdas[x][y]= valor ;
    }
    
    public int getTipoCelda(int x,int y){
        return celdas[x][y];
    }
    
    public void initRejilla(){
        int i,j;
        
        for(i=0;i<anchura;i++){
            for(j=0;j<altura;j++){
                celdas[i][j]=VACIA;
            }
        }       
        for(j=0;j<altura;j++){            
            celdas[0][j]=BLOQUE;
            celdas[7][j]=BLOQUE;
        }
        for(i=0;i<anchura;i++){
        	celdas[i][0]=BLOQUE;
        	celdas[i][8]=BLOQUE;
        }
        
    }
    
    boolean seChoca(Figura fig, int direccion){
        Elemento elemento;
        for(int i=0;i<fig.getNElements();i++){
            elemento=fig.getElementAt(i);
            if(direccion==Figura.ABAJO){
                if(celdas[elemento.getColumna()+fig.getXOrigen()]
                        [elemento.getFila()+fig.getYOrigen()+1]==BLOQUE){
                    return true;
                }
            } 
            else if(direccion==Figura.IZQUIERDA){
                if(celdas[elemento.getColumna()+fig.getXOrigen()-1]
                        [elemento.getFila()+fig.getYOrigen()]==BLOQUE){
                    return true;
                }
            }
            else if(direccion==Figura.DERECHA){
                if(celdas[elemento.getColumna()+fig.getXOrigen()+1]
                        [elemento.getFila()+fig.getYOrigen()]==BLOQUE){
                    return true;
                }
            }
            else if(direccion==Figura.ARRIBA){
                if(celdas[elemento.getColumna()+fig.getXOrigen()]
                        [elemento.getFila()+fig.getYOrigen()-1]==BLOQUE){
                    return true;
                }
            }
        }       
        return false;
    }
}

