Advertisement
nik_key

last

Jan 27th, 2020
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 19.95 KB | None | 0 0
  1. package hist.kopitin.histquiz;
  2.  
  3. import androidx.appcompat.app.AppCompatActivity;
  4.  
  5. import android.app.Dialog;
  6. import android.content.Intent;
  7. import android.graphics.Color;
  8. import android.graphics.drawable.ColorDrawable;
  9. import android.os.Bundle;
  10. import android.view.MotionEvent;
  11. import android.view.View;
  12. import android.view.Window;
  13. import android.view.WindowManager;
  14. import android.view.animation.Animation;
  15. import android.view.animation.AnimationUtils;
  16. import android.widget.Button;
  17. import android.widget.ImageView;
  18. import android.widget.TextView;
  19.  
  20. import java.util.Random;
  21.  
  22. public class Level1 extends AppCompatActivity {
  23.  
  24.     Dialog /*базовый класс создающ диалог окно*/dialog;/*имя диалог окна*/
  25.  
  26.     public int numLeft;// переменная для левой картинки + текст
  27.     public int numRight; //Перемення для правой картинки + текст
  28.     public int power1;
  29.     Array array = new Array(); //Создали новый объект из класса Array
  30.     Random random = new Random(); //Для генерации случайных чисел
  31.     public int count = 0; //счётчик правильных ответов
  32.  
  33.     @Override
  34.     protected void onCreate(Bundle savedInstanceState) {
  35.         super.onCreate(savedInstanceState);
  36.         setContentView(R.layout.universal);
  37.  
  38.         //Создаём переменную text_levels
  39.         final TextView text_levels = findViewById(R.id.text_levels);
  40.         text_levels.setText(R.string.level1);// установили текст
  41.  
  42.  
  43.         final ImageView img_left = (ImageView)findViewById(R.id.img_left); //говорит телефону о том что  расположили на экране картинку
  44.         //код, скругляющий углы левой
  45.         img_left.setClipToOutline(true);
  46.         final ImageView img_right = (ImageView)findViewById(R.id.img_right); //говорит телефону о том что  расположили на экране картинку
  47.         //код, скругляющий углы правой картинки
  48.         img_right.setClipToOutline(true);
  49.         //путь к левой TextView
  50.         final TextView text_left = findViewById(R.id.text_left);
  51.         //Путь к правой TextView
  52.         final TextView text_right = findViewById(R.id.text_right);
  53.         //путь к тексту задания
  54.         final TextView text_quest = findViewById(R.id.text_levels);
  55.         //Развернуть игру на весь экран начало убирает строку навигации
  56.  
  57.         Window w = getWindow();
  58.         w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
  59.         //Развернуть игру на весь экран конец
  60.  
  61.         //вызов диалгового окна в начале игры
  62.         dialog = new Dialog(this);//созд новое диалог окно
  63.         dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);//скрывает заголовок дииалог окна
  64.         dialog.setContentView(R.layout.previewdialog);//путь к макету диалог окна
  65.         dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//прозрачный фон диалогового окна
  66.         dialog.setCancelable(false);//окно нельзя закрывать кнопкой назад
  67.  
  68.         //кнопка закр диалог окно - начало
  69.         TextView btnclose = (TextView)dialog.findViewById(R.id.btnclose);
  70.         btnclose.setOnClickListener(new View.OnClickListener() {
  71.             @Override
  72.             public void onClick(View v) {
  73.                 //Обрабатываем нажатие кнопки - начало
  74.                 try {
  75.                     //вернуться назад к выбору уровня - начало
  76.                     Intent intent = new Intent(Level1.this, GameLevels.class);//создали намерение для перехода из окна 1го уровня Level1.this к меню выбора других уровней GameLevels.class
  77.                     startActivity(intent); //страрт намерения
  78.                     finish(); //закрыть этот класс - окно
  79.                     //вернуться назад к выбору уровня - конец
  80.                 }catch (Exception e){
  81.                     //в блоке кода, ловящего ошибки, кода не будет
  82.                     // Обрабатываем нажатие кнопки - конец
  83.                 }
  84.                 dialog.dismiss(); //Закрываем диалог окно
  85.                 // Обрабатываем нажатие кнопки - конец
  86.             }
  87.         });
  88.         //кнопка закр диалог окно - конец
  89.  
  90.         //Кнопка продолжить - начало
  91.         Button btncontinue = (Button)dialog.findViewById(R.id.buttoncontinue);
  92.         btncontinue.setOnClickListener(new View.OnClickListener() {
  93.             @Override
  94.             public void onClick(View v) {
  95.                 dialog.dismiss(); //закрываем дилоговое окно
  96.             }
  97.         });
  98.         //Кнопка продолжить - конец
  99.  
  100.         dialog.show(); //показать диалоговое окно
  101.  
  102.         //Кнопка назад - начало
  103.         Button btn_back =(Button)findViewById(R.id.button_back);
  104.         btn_back.setOnClickListener(new View.OnClickListener() {
  105.             @Override
  106.             public void onClick(View v) {
  107.                 //Обрабатываем нажатие кнопки - начало
  108.                 try {
  109.                     //вернуться назад к выбору уровня - начало
  110.                     Intent intent = new Intent(Level1.this, GameLevels.class);//Создаем намерение для перехода
  111.                     startActivity(intent);//Старт намерения
  112.                     finish(); // закрываем этот класс
  113.                     //вернуться назад к выбору уровня - конец
  114.                 }catch (Exception e){
  115.                     //кода не будет
  116.                 }
  117.  
  118.                 //Обрабатываем нажатие кнопки - конец
  119.             }
  120.         });
  121.         //Кнопка назад - конец
  122.  
  123.         //Массив для прогресса игры - начало
  124.         final int[] progress = {
  125.                 R.id.point1, R.id.point2, R.id.point3, R.id.point4, R.id.point5,
  126.                 R.id.point6, R.id.point7, R.id.point8, R.id.point9, R.id.point10
  127.         };
  128.         //Массив для прогресса игры - конец
  129.  
  130.         //Подключаем анимацию - начало
  131.  
  132.         final Animation a = AnimationUtils.loadAnimation(Level1.this, R.anim.alpha);
  133.         //Подключаем анимацию - конец
  134.         numLeft = random.nextInt(10); //Генерируем случайное число от 0 до 9
  135.         img_left.setImageResource(array.images1[numLeft]); //Достаем из массива картинку
  136.         text_left.setText(array.texts1[numLeft]); //Достаем из массива текст
  137.  
  138.         numRight = random.nextInt(10);//Генерируем случайное число от 0 до 9
  139.  
  140.         //Цикл с предусловием,проверяющий равенство чисел - начало
  141.         while (numLeft==numRight){
  142.             numRight = random.nextInt(10);
  143.         }
  144.         //Цикл с предусловием,проверяющий равенство чисел - конец
  145.  
  146.         img_right.setImageResource(array.images1[numRight]); //достаём из массива картинку
  147.         text_right.setText(array.texts1[numRight]); //Достаём из массива текст
  148.         text_levels.setText(array.textsq1[numRight]);//достаём из массива текст задания
  149.         //Обрабатываем нажатие на левую клавишу - начало
  150.         img_left.setOnTouchListener(new View.OnTouchListener() {
  151.             @Override
  152.             public boolean onTouch(View v, MotionEvent event) {
  153.                 //условие касания картинки - начало
  154.                 if (event.getAction()==MotionEvent.ACTION_DOWN){
  155.                     //если коснулся картинки - начало
  156.                     img_right.setEnabled(false);//Блокируем правую картинку при нажжатиии левой
  157.                     if (numLeft>numRight){
  158.                         img_left.setImageResource(R.drawable.img_true);
  159.                     }else{
  160.                         img_left.setImageResource(R.drawable.img_wrong);
  161.                     }
  162.                     //если коснулся картинки - конец
  163.                 }else if (event.getAction()==MotionEvent.ACTION_UP){
  164.                     //если отпустил палец - начало
  165.                     if(numLeft>numRight){
  166.                         //Если левая картинка больше
  167.                         if(count<10){
  168.                             count=count+1;
  169.                         }
  170.  
  171.                         //Закраш прогресс серым цвето - начао
  172.                             for (int i=0; i<10; i++){
  173.                                 TextView tv = findViewById(progress[i]);
  174.                                 tv.setBackgroundResource(R.drawable.style_points);
  175.                             }
  176.                         //Закраш прогресс серым цвето - конец
  177.  
  178.                         //Определяем правильные ответы и закрвшиваем зеленым - начадо
  179.                             for(int i=0; i<count; i++){
  180.                                 TextView tv = findViewById(progress[i]);
  181.                                 tv.setBackgroundResource(R.drawable.style_points_green);
  182.                             }
  183.                         //Определяем правильные ответы и закрвшиваем зеленым - конец
  184.                     }else {
  185.                         //если левая картинка ментше
  186.                         if(count>0){
  187.                             if(count==1){
  188.                                 count=0;
  189.                             }else{
  190.                                 count=count-2;
  191.                             }
  192.                         }
  193.                         //Закраш прогресс серым цвето - начао
  194.                         for (int i=0; i<9; i++){
  195.                             TextView tv = findViewById(progress[i]);
  196.                             tv.setBackgroundResource(R.drawable.style_points);
  197.                         }
  198.                         //Закраш прогресс серым цвето - конец
  199.  
  200.                         //Определяем правильные ответы и закрвшиваем зеленым - начадо
  201.                         for(int i=0; i<count; i++){
  202.                             TextView tv = findViewById(progress[i]);
  203.                             tv.setBackgroundResource(R.drawable.style_points_green);
  204.                         }
  205.                         //Определяем правильные ответы и закрвшиваем зеленым - конец
  206.                     }
  207.                     //Если отпустил палец -конец
  208.                         if(count==20){
  209.                             //выход из уровня
  210.  
  211.                         }else{
  212.                             numLeft = random.nextInt(10); //Генерируем случайное число от 0 до 9
  213.                             img_left.setImageResource(array.images1[numLeft]); //Достаем из массива картинку
  214.                             img_left.startAnimation(a);
  215.                             text_left.setText(array.texts1[numLeft]); //Достаем из массива текст
  216.  
  217.                             numRight = random.nextInt(10);//Генерируем случайное число от 0 до 9
  218.  
  219.                             //Цикл с предусловием,проверяющий равенство чисел - начало
  220.                             while (numLeft==numRight){
  221.                                 numRight = random.nextInt(10);
  222.                             }
  223.                             //Цикл с предусловием,проверяющий равенство чисел - конец
  224.                             text_levels.setText(array.textsq1[numLeft]);//достаём из массива текст задания
  225.                             img_right.setImageResource(array.images1[numRight]); //достаём из массива картинку
  226.                             img_right.startAnimation(a);
  227.                             text_right.setText(array.texts1[numRight]); //Достаём из массива текст
  228.  
  229.                             img_right.setEnabled(true); //включ обратно правую картинку
  230.                         }
  231.                 }
  232.                 //условие касания картинки - конец
  233.                 return true;
  234.             }
  235.         });
  236.         //Обрабатываем нажатие на левую картинку - конец
  237.  
  238.         //Обрабатываем нажатие на правую картинку - начадл
  239.         img_right.setOnTouchListener(new View.OnTouchListener() {
  240.             @Override
  241.             public boolean onTouch(View v, MotionEvent event) {
  242.                 //условие касания картинки - начало
  243.                 if (event.getAction()==MotionEvent.ACTION_DOWN){
  244.                     //если коснулся картинки - начало
  245.                     img_left.setEnabled(false);//Блокируем левую картинку при нажжатиии правой
  246.                     if (numLeft<numRight){
  247.                         img_right.setImageResource(R.drawable.img_true);
  248.                     }else{
  249.                         img_right.setImageResource(R.drawable.img_wrong);
  250.                     }
  251.                     //если коснулся картинки - конец
  252.                 }else if (event.getAction()==MotionEvent.ACTION_UP){
  253.                     //если отпустил палец - начало
  254.                     if(numLeft<numRight){
  255.                         //Если правая картинка больше
  256.                         if(count<10){
  257.                             count=count+1;
  258.                         }
  259.  
  260.                         //Закраш прогресс серым цвето - начао
  261.                         for (int i=0; i<10; i++){
  262.                             TextView tv = findViewById(progress[i]);
  263.                             tv.setBackgroundResource(R.drawable.style_points);
  264.                         }
  265.                         //Закраш прогресс серым цвето - конец
  266.  
  267.                         //Определяем правильные ответы и закрвшиваем зеленым - начадо
  268.                         for(int i=0; i<count; i++){
  269.                             TextView tv = findViewById(progress[i]);
  270.                             tv.setBackgroundResource(R.drawable.style_points_green);
  271.                         }
  272.                         //Определяем правильные ответы и закрвшиваем зеленым - конец
  273.                     }else {
  274.                         //если правая картинка ментше
  275.                         if(count>0){
  276.                             if(count==1){
  277.                                 count=0;
  278.                             }else{
  279.                                 count=count-2;
  280.                             }
  281.                         }
  282.                         //Закраш прогресс серым цвето - начао
  283.                         for (int i=0; i<9; i++){
  284.                             TextView tv = findViewById(progress[i]);
  285.                             tv.setBackgroundResource(R.drawable.style_points);
  286.                         }
  287.                         //Закраш прогресс серым цвето - конец
  288.  
  289.                         //Определяем правильные ответы и закрвшиваем зеленым - начадо
  290.                         for(int i=0; i<count; i++){
  291.                             TextView tv = findViewById(progress[i]);
  292.                             tv.setBackgroundResource(R.drawable.style_points_green);
  293.                         }
  294.                         //Определяем правильные ответы и закрвшиваем зеленым - конец
  295.                     }
  296.                     //Если отпустил палец -конец
  297.                     if(count==20){
  298.                         //выход из уровня
  299.  
  300.                     }else{
  301.                         numLeft = random.nextInt(10); //Генерируем случайное число от 0 до 9
  302.                         img_left.setImageResource(array.images1[numLeft]); //Достаем из массива картинку
  303.                         img_left.startAnimation(a);
  304.                         text_left.setText(array.texts1[numLeft]); //Достаем из массива текст
  305.  
  306.                         numRight = random.nextInt(10);//Генерируем случайное число от 0 до 9
  307.  
  308.                         //Цикл с предусловием,проверяющий равенство чисел - начало
  309.                         while (numLeft==numRight){
  310.                             numRight = random.nextInt(10);
  311.                         }
  312.                         //Цикл с предусловием,проверяющий равенство чисел - конец
  313.                         text_levels.setText(array.textsq1[numRight]);//достаём из массива текст задания
  314.                         img_right.setImageResource(array.images1[numRight]); //достаём из массива картинку
  315.                         img_right.startAnimation(a);
  316.                         text_right.setText(array.texts1[numRight]); //Достаём из массива текст
  317.  
  318.                         img_left.setEnabled(true); //включ обратно картинку левуюю
  319.                     }
  320.                 }
  321.                 //условие касания картинки - конец
  322.                 return true;
  323.             }
  324.         });
  325.         //Обрабатываем нажатие на правую картинку - конец
  326.     }
  327.     //Системная кнопка назад - начало
  328.     @Override
  329.     public void onBackPressed(){
  330.         //Обрабатываем нажатие кнопки - начало
  331.         try {
  332.             //вернуться назад к выбору уровня - начало
  333.             Intent intent = new Intent(Level1.this, GameLevels.class);//Создаем намерение для перехода
  334.             startActivity(intent);//Старт намерения
  335.             finish(); // закрываем этот класс
  336.             //вернуться назад к выбору уровня - конец
  337.         }catch (Exception e){
  338.             //кода не будет
  339.         }
  340.  
  341.         //Обрабатываем нажатие кнопки - конец
  342.     }
  343.     //Системная кнопка назад - конец
  344. }
  345.  
  346. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement