Почему число в игре 2048 перепрыгивает сразу на следующую часть, а не задерживается?

Я пытаюсь написать своё первое приложение, игру 2048. Суть кода проста, мне нужно чтобы нужное число задерживалось (если оно менялось) и только потом продолжала дальше свой путь по игровой арене. Но оно почему-то сразу перепрыгивает на следующую часть :(

Метод right():

public void right(int s1,int s2,int s3,int s4,int s5,int s6,
        int s7,int s8,int s9,int s10, int s11,int s12,int s13,int s14,int s15,int s16) {
        
    int a1= s1;
    int a10=s10;
    int a11=s11;
    int a12=s12;
    int a13=s13;
    int a14=s14;
    int a15=s15;
    int a16=s16;
    int a2= s2;
    int a3= s3;
    int a4= s4;
    int a5= s5;
    int a6= s6; 
    int a7= s7;
    int a8= s8;
    int a9= s9;

    if (a2==0){
        a2=a1;
        a1=0;
    } if (a6==0){
        a6=a5;
        a5=0;
    } if (a10==0){
        a10=a9;
        a9=0;
    } if (a14==0){
        a14=a13;
        a13=0;
    } if (a2!=s2 | a6!=s6 | a10!=s10 | a14!=s14){
            
        arena(a1,a2,s3,s4,a5,a6,s7,s8,a9,a10,s11,s12,a13,a14,s15,s16);
            
        stock(a1,a2,s3,s4,a5,a6,s7,s8,a9,a10,s11,s12,a13,a14,s15,s16);
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
             e.printStackTrace();
        }
    }

    if (a3==0){
        a3=a2;
        a2=0;
    } if (a7==0){
        a7=a6;
        a6=0;
    } if (a11==0){
        a11=a10;
        a10=0;
    } if (a15==0){
        a15=a14;
        a14=0;
    } if (a3!=s3 | a7!=s7 | a11!=s11 | a15!=s15){
            arena(a1,a2,a3,s4,a5,a6,a7,s8,a9,a10,a11,s12,a13,a14,a15,s16);
            stock(a1,a2,a3,s4,a5,a6,a7,s8,a9,a10,a11,s12,a13,a14,a15,s16);
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

Метод arena():

   public void arena(int s1,int s2,int s3,int s4,int s5,int s6,int 
   s7,int s8,int s9,int s10,
                  int s11,int s12,int s13,int s14,int s15,int s16){
    if (s1==0){
        sector1_0.setVisibility(View.VISIBLE);
        sector1_2.setVisibility(View.INVISIBLE);
        sector1_4.setVisibility(View.INVISIBLE);
        sector1_8.setVisibility(View.INVISIBLE);
    } if(s1!=0) {
        if (s1==2){
            sector1_0.setVisibility(View.INVISIBLE);
            sector1_2.setVisibility(View.VISIBLE);
        }
    }
    if (s2==0){
        sector2_0.setVisibility(View.VISIBLE);
        sector2_2.setVisibility(View.INVISIBLE);
        sector2_4.setVisibility(View.INVISIBLE);
        sector2_8.setVisibility(View.INVISIBLE);
    } if(s2!=0) {
        if (s2==2){
            sector2_0.setVisibility(View.INVISIBLE);
            sector2_2.setVisibility(View.VISIBLE);
        }
    }
    if (s3==0){
        sector3_0.setVisibility(View.VISIBLE);
        sector3_2.setVisibility(View.INVISIBLE);
        sector3_4.setVisibility(View.INVISIBLE);
        sector3_8.setVisibility(View.INVISIBLE);
    } if(s3!=0) {
        if (s3==2){
            sector3_0.setVisibility(View.INVISIBLE);
            sector3_2.setVisibility(View.VISIBLE);
        }
    }
    if (s4==0){
        sector4_0.setVisibility(View.VISIBLE);
        sector4_2.setVisibility(View.INVISIBLE);
        sector4_4.setVisibility(View.INVISIBLE);
        sector4_8.setVisibility(View.INVISIBLE);
    } if(s4!=0) {
        if (s4==2){
            sector4_0.setVisibility(View.INVISIBLE);
            sector4_2.setVisibility(View.VISIBLE);
        }
    }
    if (s5==0){
        sector5_0.setVisibility(View.VISIBLE);
        sector5_2.setVisibility(View.INVISIBLE);
        sector5_4.setVisibility(View.INVISIBLE);
        sector5_8.setVisibility(View.INVISIBLE);
    } if(s5!=0) {
        if (s5==2){
            sector5_0.setVisibility(View.INVISIBLE);
            sector5_2.setVisibility(View.VISIBLE);
        }
    }
    if (s6==0){
        sector6_0.setVisibility(View.VISIBLE);
        sector6_2.setVisibility(View.INVISIBLE);
        sector6_4.setVisibility(View.INVISIBLE);
        sector6_8.setVisibility(View.INVISIBLE);
    } if(s6!=0) {
        if (s6==2){
            sector6_0.setVisibility(View.INVISIBLE);
            sector6_2.setVisibility(View.VISIBLE);
        }
    }
    if (s7==0){
        sector7_0.setVisibility(View.VISIBLE);
        sector7_2.setVisibility(View.INVISIBLE);
        sector7_4.setVisibility(View.INVISIBLE);
        sector7_8.setVisibility(View.INVISIBLE);
    } if(s7!=0) {
        if (s7==2){
            sector7_0.setVisibility(View.INVISIBLE);
            sector7_2.setVisibility(View.VISIBLE);
        }
    }
    if (s8==0){
        sector8_0.setVisibility(View.VISIBLE);
        sector8_2.setVisibility(View.INVISIBLE);
        sector8_4.setVisibility(View.INVISIBLE);
        sector8_8.setVisibility(View.INVISIBLE);
    } if(s8!=0) {
        if (s8==2){
            sector8_0.setVisibility(View.INVISIBLE);
            sector8_2.setVisibility(View.VISIBLE);
        }
    }
    if (s9==0){
        sector9_0.setVisibility(View.VISIBLE);
        sector9_2.setVisibility(View.INVISIBLE);
        sector9_4.setVisibility(View.INVISIBLE);
        sector9_8.setVisibility(View.INVISIBLE);
    } if(s9!=0) {
        if (s9==2){
            sector9_0.setVisibility(View.INVISIBLE);
            sector9_2.setVisibility(View.VISIBLE);
        }
    }
    if (s10==0){
        sector10_0.setVisibility(View.VISIBLE);
        sector10_2.setVisibility(View.INVISIBLE);
        sector10_4.setVisibility(View.INVISIBLE);
        sector10_8.setVisibility(View.INVISIBLE);
    } if(s10!=0) {
        if (s10==2){
            sector10_0.setVisibility(View.INVISIBLE);
            sector10_2.setVisibility(View.VISIBLE);
        }
    }
    if (s11==0){
        sector11_0.setVisibility(View.VISIBLE);
        sector11_2.setVisibility(View.INVISIBLE);
        sector11_4.setVisibility(View.INVISIBLE);
        sector11_8.setVisibility(View.INVISIBLE);
    } if(s11!=0) {
        if (s11==2){
            sector11_0.setVisibility(View.INVISIBLE);
            sector11_2.setVisibility(View.VISIBLE);
        }
    }
    if (s12==0){
        sector12_0.setVisibility(View.VISIBLE);
        sector12_2.setVisibility(View.INVISIBLE);
        sector12_4.setVisibility(View.INVISIBLE);
        sector12_8.setVisibility(View.INVISIBLE);
    } if(s12!=0) {
        if (s12==2){
            sector12_0.setVisibility(View.INVISIBLE);
            sector12_2.setVisibility(View.VISIBLE);
        }
    }
    if (s13==0){
        sector13_0.setVisibility(View.VISIBLE);
        sector13_2.setVisibility(View.INVISIBLE);
        sector13_4.setVisibility(View.INVISIBLE);
        sector13_8.setVisibility(View.INVISIBLE);
    } if(s13!=0) {
        if (s13==2){
            sector13_0.setVisibility(View.INVISIBLE);
            sector13_2.setVisibility(View.VISIBLE);
        }
    }
    if (s14==0){
        sector14_0.setVisibility(View.VISIBLE);
        sector14_2.setVisibility(View.INVISIBLE);
        sector14_4.setVisibility(View.INVISIBLE);
        sector14_8.setVisibility(View.INVISIBLE);
    } if(s14!=0) {
        if (s14==2){
            sector14_0.setVisibility(View.INVISIBLE);
            sector14_2.setVisibility(View.VISIBLE);
        }
    }
    if (s15==0){
        sector15_0.setVisibility(View.VISIBLE);
        sector15_2.setVisibility(View.INVISIBLE);
        sector15_4.setVisibility(View.INVISIBLE);
        sector15_8.setVisibility(View.INVISIBLE);
    } if(s15!=0) {
        if (s15==2){
            sector15_0.setVisibility(View.INVISIBLE);
            sector15_2.setVisibility(View.VISIBLE);
        }
    }
    if (s16==0){
        sector16_0.setVisibility(View.VISIBLE);
        sector16_2.setVisibility(View.INVISIBLE);
        sector16_4.setVisibility(View.INVISIBLE);
        sector16_8.setVisibility(View.INVISIBLE);
    } if(s16!=0) {
        if (s16==2){
            sector16_0.setVisibility(View.INVISIBLE);
            sector16_2.setVisibility(View.VISIBLE);
        }
    }
}

Ответы (0 шт):