Помогите кто может или нарушения функционирования алгоритма в JAVA

помогите пожалуйста, в общем, пытаюсь вывести числовые выражения из массива, но не получается. По клику на верхний блок числовые выражения по новой не генерируются, причём в обеих блоках. Также общей проблемой является то, что картинки правильных/неправильных ответов после того как отпустил палец с экрана не пропадают. Где я совершил ошибку?

package apps.emelianov.a75;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.Random;




public class Level1 extends AppCompatActivity {


    public int num1;
    public String num2;
    public int num3;
    public int num4;
    public String num5;
    public int num6;



    Array array = new Array(); //Создали новый объект из класса Array (OK)
    Random random = new Random(); //Для генерации случайных чисел (OK)
    public int count = 0; //Счётчик правильных ответов
   



    @SuppressLint("ClickableViewAccessibility")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.universal1);
        



        //Развернуть игру на весь экран - начало
        Window w = getWindow();
        w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
        //Развернуть игру на весь экран - конец

       //Кнопка назад - начало
      Button button_back_level1 = (Button)findViewById(R.id.button_back_level1);
        button_back_level1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try {
                    Intent intent = new Intent(Level1.this, GameLevels.class);
                    startActivity(intent);
                    finish();
                } catch (Exception e) {

                }
            }
        });
        //Кнопка назад - конец

        //Массив для прогресса игры - начало

        final int[] progress = {
                R.id.point1, R.id.point2, R.id.point3, R.id.point4, R.id.point5, R.id.point6, R.id.point7,
                R.id.point8, R.id.point9, R.id.point10, R.id.point11, R.id.point12, R.id.point13, R.id.point14, R.id.point15,
                R.id.point16, R.id.point17, R.id.point18, R.id.point19, R.id.point20,
        };

        //Массив для прогресса игры - конец


        //Подключаем анимацию - начало
        final Animation a = AnimationUtils.loadAnimation(Level1.this, R.anim.alpha);
        //Подключаем анимаию - конец


        num1 = random.nextInt(10);
        num2  = getString(R.string.plus);
         num3 = random.nextInt(10);
        num4 = random.nextInt(10);
        num5  = getString(R.string.plus);
        num6 = random.nextInt(10);

        while(num1 == num4 ) {
            num1 = random.nextInt(10);
            num4 = random.nextInt(10);

        }

        //Цикл с предусловием проверяющий равенство чисел - конец

        //Цикл с предусловием, проверяющий равенство чисел - начало

        while(num3 == num6 ) {
            num3 = random.nextInt(10);
            num6 = random.nextInt(10);

        }

        //Цикл с предусловием проверяющий равенство чисел - конец

        //Цикл с предусловием, проверяющий равенство чисел - начало



        final TextView numericUp = (TextView)findViewById(R.id.numericUp);

        final TextView numericLow = (TextView)findViewById(R.id.numericLow);



        //Обрабатываем нажатие на верхний блок - начало
        final ImageView img_high = findViewById(R.id.img_high);
        final ImageView img_low = findViewById(R.id.img_low);

        numericUp.setText("" + num1 + num2 + num3); //Достаём из массива числовое выражение
        img_high.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent event) {
                //Условие касания картинки - начало

                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    //Если коснулся картинки - начало
                    img_low.setEnabled(false);//блокируем нижний блок
                    if (num1 > num4 & num3 > num6) {
                        img_high.setImageResource(R.drawable.yes);
                    } else {
                        img_high.setImageResource(R.drawable.wrong);
                    }
                } else if (event.getAction() == MotionEvent.ACTION_UP) {

                    //Если отпустил палец - начало
                    if (num1 + num4 > num3 + num6) {
                        //Если верхняя картинка меньше
                        if (count < 20) {
                            count = count + 1;
                        }
                        //Закрашиваем прогресс серым цветом - начало
                        for (int i = 0; i < 20; i++) {
                            TextView tv = findViewById(progress[i]);
                            tv.setBackgroundResource(R.drawable.style_points);
                        }
                        //Закрашиваем прогресс серым цветом - конец

                        //Закрашиваем прогресс зеленым цветом - начало
                        for (int i = 0; i < count; i++) {
                            TextView tv = findViewById(progress[i]);
                            tv.setBackgroundResource(R.drawable.sryle_points_completed);
                        }
                        //Закрашиваем прогресс зеленым цветом - конец
                    } else {
                        //Если верхняя картинка меньше
                        if (count < 3) {
                           count=0;
                            } else {
                                count = count - 2;
                            }
                        }
                    }

                    //Закрашиваем прогресс серым цветом - начало
                    for (int i = 0; i < 19; i++) {
                        TextView tv = findViewById(progress[i]);
                        tv.setBackgroundResource(R.drawable.style_points);
                    }
                    //Закрашиваем прогресс серым цветом - конец

                    //Закрашиваем прогресс зеленым цветом - начало
                    for (int i = 0; i < count; i++) {
                        TextView tv = findViewById(progress[i]);
                        tv.setBackgroundResource(R.drawable.sryle_points_completed);
                    }
                    //Закрашиваем прогресс зеленым цветом - конец


                //Если отпустил палец - конец
                if (count == 20) {//Выход из уровня!!!!!!!!!!!!!!!!!!!!!!!!!!
                } else {
                    //Генерируем выражения далее
                    num1 = random.nextInt(10);
                    num3 = random.nextInt(10);
                    img_high.startAnimation(a);
                    num4 = random.nextInt(10);
                    num6 = random.nextInt(10);
                    img_low.startAnimation(a);
                    img_low.setEnabled(true); //Включаем обратно правую картинку
                }

                return false;
            }
            //Условие касания картинки - конец

        });

        //Обрабатываем нажатие на верхний блок - конец




        numericLow.setText("" + num4 + num5 + num6); //Достаём из массива числовое выражение

        //Обрабатываем нажатие на НИЖНИЙ блок - начало

        img_low.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent event) {
                //Условие касания картинки - начало
                if (event.getAction()==MotionEvent.ACTION_DOWN){
                    //Если коснулся картинки - начало
                    img_high.setEnabled(false);//блокируем верхний блок
                    if(num1<num4 & num3<num6) {
                        img_low.setImageResource(R.drawable.yes);
                    } else {
                        img_low.setImageResource(R.drawable.wrong);
                    }
                }
                else if(event.getAction()==MotionEvent.ACTION_UP) {

                    //Если отпстил палец - начало
                    if(num1<num4 & num3<num6) {
                        if(count<20) {
                            count=count+1;
                        }
                        //Закрашиваем прогресс серым цветом - начало
                        for (int i=0; i<20; i++) {
                            TextView tv = findViewById(progress[i]);
                            tv.setBackgroundResource(R.drawable.style_points);
                        }
                        //Закрашиваем прогресс серым цветом - конец

                        //Закрашиваем прогресс зеленым цветом - начало
                        for(int i=0; i<count; i++) {
                            TextView tv = findViewById(progress[i]);
                            tv.setBackgroundResource(R.drawable.sryle_points_completed);
                        }
                        //Закрашиваем прогресс зеленым цветом - конец
                    }else{
                        //Если нижняя картинка меньше
                        if(count<3) {
                            count=0;
                            }else{
                                count=count-2;
                            }
                        }
                        //Закрашиваем прогресс серым цветом - начало
                        for (int i=0; i<19; i++) {
                            TextView tv = findViewById(progress[i]);
                            tv.setBackgroundResource(R.drawable.style_points);
                        }
                        //Закрашиваем прогресс серым цветом - конец

                        //Закрашиваем прогресс зеленым цветом - начало
                        for(int i=0; i<count; i++) {
                            TextView tv = findViewById(progress[i]);
                            tv.setBackgroundResource(R.drawable.sryle_points_completed);
                        }
                        //Закрашиваем прогресс зеленым цветом - конец
                    }

                    //Если отпустил палец - конец
                    if(count==20) {
                        //Выход из уровня!!!!!!!!!!!!!!!!!!!!!!!!!!
                    }else{
                        //Генерируем выражения далее
                        num1 = random.nextInt(10);
                        num3 = random.nextInt(10);
                        num4 = random.nextInt(10);
                        num6 = random.nextInt(10);
                        numericUp.setText("" + num1 + num2 + num3); //Достаём из массива числовое выражение
                        numericLow.setText("" + num4 + num5 + num6); //Достаём из массива числовое выражение
                        img_high.startAnimation(a);
                        img_low.startAnimation(a);
                        img_high.setEnabled(true); //Включаем обратно правую картинку

                    }


                //Условие касания картинки - конец
                return true;
            }
        });

        //Обрабатываем нажатие на НИЖНИЙ блок - конец

введите сюда описание изображения


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