Como verificar se o quebra-cabeça está completo ou não?

Estou preparando um pequeno jogo como o quebra-cabeças, por isso estou usando 9 imageview's com 9 imagens diferentes no layout. defina as imagens para visualização de imagem no momento em que essas são imagens reais, depois que o usuário aleatório fizer deslizar as imagens para concluir o quebra-cabeça, eu quero verificar a imagem modificada com as imagens reais, o tempo é igual ou não, se forem iguais pop-up uma mensagem , como gameover.

i tentei assim

. usando o operador AND entre as imagens (Drawables), mas azarad

2.Usando setLevel () para as imagens, compare os valores setLevel com os valores getLevel para imagens depois de deslizar ainda azar .. aqui está o problema se eu clicar na visualização de imagem uma vez getLevel () fornecer o valor correto, se eu clicar mais de uma vez dá valor zero. Por que acontece assim ..

Por favor me ajude se você encontrar algum erro no meu código, caso contrário, me guie com uma boa técnica ..

Xml code like this
<RelativeLayout
   //9 imageview's  

no código jave como este, se o usuário clicar em imageview, ele trocará o @ da imag

 img_View11.setOnClickListener(new View.OnClickListener()  {            
    public void onClick(View v)  { 

        if(img_View21.getDrawable() == default_img || 
                                    img_View12.getDrawable() == default_img) {

            System.out.println("yes");
            ++click;
            Noof_moves.setText("Moves: " +click);
            ImageView iv = (ImageView)v;                 
            d11 = iv.getDrawable();   
            prev_img = prev_imgView.getDrawable();

            la11 = d11.getLevel();
            System.out.println("d11 value is " +la11);                  

            prev_imgView.setImageDrawable(d11);                 

            img_View11.setImageDrawable(prev_img);                
            prev_imgView = img_View11;

            check();
            }
        else { System.out.println("no");  }
        }
    });

void check(){

    System.out.println("in checking condition");
    if((lb11==la11) && (lb12==la12) && (lb13==la13) && (lb21==la21) && (lb22==la22)
        && (lb23==la23) && (lb31==la31) && (lb32==la32) && (lb33==la33)) {
            Context c = getBaseContext();
            System.out.println("gameover");
            Toast.makeText(c, " GameOver ", Toast.LENGTH_SHORT).show();
    }else{ System.out.println(" codition not checked "); }
} 
//here lb=level before sliding
//     la=level after sliding..