Advertisement
SenpaiZero

Untitled

May 9th, 2024
877
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.01 KB | None | 0 0
  1. package com.example.pairs;
  2.  
  3. import android.content.Intent;
  4. import android.graphics.Bitmap;
  5. import android.graphics.BitmapFactory;
  6. import android.graphics.drawable.BitmapDrawable;
  7. import android.os.Bundle;
  8. import android.view.View;
  9. import android.view.WindowManager;
  10. import android.widget.ImageButton;
  11. import android.widget.ImageView;
  12.  
  13. import androidx.activity.EdgeToEdge;
  14. import androidx.appcompat.app.AppCompatActivity;
  15. import androidx.cardview.widget.CardView;
  16. import androidx.core.graphics.Insets;
  17. import androidx.core.view.ViewCompat;
  18. import androidx.core.view.WindowInsetsCompat;
  19.  
  20. import java.util.Random;
  21.  
  22. public class MainActivity extends AppCompatActivity {
  23.  
  24.     ImageButton home, retry;
  25.     ImageView one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve;
  26.     Bitmap[] images = new Bitmap[6];
  27.     Bitmap defImage;
  28.     ImageView firstClicked = null;
  29.     boolean canClick = true;
  30.  
  31.     @Override
  32.     protected void onCreate(Bundle savedInstanceState) {
  33.         super.onCreate(savedInstanceState);
  34.         setContentView(R.layout.activity_main);
  35.  
  36.         setUIVariables();
  37.         setImages();
  38.         setRandomizedPair();
  39.  
  40.         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  41.                 WindowManager.LayoutParams.FLAG_FULLSCREEN);
  42.     }
  43.  
  44.     void setRandomizedPair() {
  45.         int[] pairImages = {0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5};
  46.  
  47.         shuffleArray(pairImages);
  48.  
  49.         one.setTag(pairImages[0]);
  50.         two.setTag(pairImages[1]);
  51.         three.setTag(pairImages[2]);
  52.         four.setTag(pairImages[3]);
  53.         five.setTag(pairImages[4]);
  54.         six.setTag(pairImages[5]);
  55.         seven.setTag(pairImages[6]);
  56.         eight.setTag(pairImages[7]);
  57.         nine.setTag(pairImages[8]);
  58.         ten.setTag(pairImages[9]);
  59.         eleven.setTag(pairImages[10]);
  60.         twelve.setTag(pairImages[11]);
  61.     }
  62.     void setImages() {
  63.         defImage = ((BitmapDrawable) one.getDrawable()).getBitmap();
  64.  
  65.         for (int i = 0; i < images.length; i++) {
  66.             int resID = getResources().getIdentifier("flip" + (i + 1), "drawable", getPackageName());
  67.             images[i] = BitmapFactory.decodeResource(getResources(), resID);
  68.         }
  69.     }
  70.  
  71.     void setUIVariables() {
  72.         one = findViewById(R.id.one);
  73.         two = findViewById(R.id.two);
  74.         three = findViewById(R.id.three);
  75.         four = findViewById(R.id.four);
  76.         five = findViewById(R.id.five);
  77.         six = findViewById(R.id.six);
  78.         seven = findViewById(R.id.seven);
  79.         eight = findViewById(R.id.eight);
  80.         nine = findViewById(R.id.nine);
  81.         ten = findViewById(R.id.ten);
  82.         eleven = findViewById(R.id.eleven);
  83.         twelve = findViewById(R.id.twelve);
  84.  
  85.         retry = findViewById(R.id.retryBtn);
  86.         home = findViewById(R.id.homeBtn);
  87.  
  88.         View.OnClickListener onClickListener = new View.OnClickListener() {
  89.             @Override
  90.             public void onClick(View view) {
  91.                 handleImageClick((ImageView) view);
  92.             }
  93.         };
  94.  
  95.         one.setOnClickListener(onClickListener);
  96.         two.setOnClickListener(onClickListener);
  97.         three.setOnClickListener(onClickListener);
  98.         four.setOnClickListener(onClickListener);
  99.         five.setOnClickListener(onClickListener);
  100.         six.setOnClickListener(onClickListener);
  101.         seven.setOnClickListener(onClickListener);
  102.         eight.setOnClickListener(onClickListener);
  103.         nine.setOnClickListener(onClickListener);
  104.         ten.setOnClickListener(onClickListener);
  105.         eleven.setOnClickListener(onClickListener);
  106.         twelve.setOnClickListener(onClickListener);
  107.  
  108.         home.setOnClickListener(new View.OnClickListener() {
  109.             @Override
  110.             public void onClick(View v) {
  111.                 startActivity(new Intent(MainActivity.this, homeScreen.class));
  112.             }
  113.         });
  114.  
  115.         retry.setOnClickListener(new View.OnClickListener() {
  116.             @Override
  117.             public void onClick(View v) {
  118.                 Intent intent = getIntent();
  119.                 finish();
  120.                 startActivity(intent);
  121.             }
  122.         });
  123.     }
  124.     private void shuffleArray(int[] array) {
  125.         Random rnd = new Random();
  126.         for (int i = array.length - 1; i > 0; i--) {
  127.             int index = rnd.nextInt(i + 1);
  128.             int temp = array[index];
  129.             array[index] = array[i];
  130.             array[i] = temp;
  131.         }
  132.     }
  133.     void handleImageClick(ImageView imageView) {
  134.         if (imageView == firstClicked || !canClick)
  135.             return;
  136.  
  137.  
  138.         int pairID = (int) imageView.getTag();
  139.         Bitmap image = images[pairID];
  140.  
  141.         imageView.setImageBitmap(image);
  142.  
  143.         if (firstClicked == null) {
  144.             firstClicked = imageView;
  145.         } else {
  146.             canClick = false;
  147.             if ((int) firstClicked.getTag() == pairID) {
  148.                 firstClicked.setEnabled(false);
  149.                 imageView.setEnabled(false);
  150.                 firstClicked = null;
  151.                 canClick = true;
  152.  
  153.                 if(checkWin()) {
  154.                     startActivity(new Intent(MainActivity.this, winScreen.class));
  155.                 }
  156.             } else {
  157.                 imageView.postDelayed(new Runnable() {
  158.                     @Override
  159.                     public void run() {
  160.                         // Reset image views to default image
  161.                         firstClicked.setImageBitmap(defImage);
  162.                         imageView.setImageBitmap(defImage);
  163.                         firstClicked = null;
  164.                         canClick = true;
  165.                     }
  166.                 }, 1000);
  167.             }
  168.         }
  169.     }
  170.  
  171.     boolean checkWin() {
  172.         ImageView[] img = new ImageView[] {
  173.                 one, two, three, four, five, six,
  174.                 seven, eight, nine, ten, eleven, twelve
  175.         };
  176.  
  177.         for (int i = 0; i < img.length; i++) {
  178.             if(img[i].isEnabled()) return false;
  179.         }
  180.  
  181.         return true;
  182.     }
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement