Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.pairs;
- import android.content.Intent;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.drawable.BitmapDrawable;
- import android.os.Bundle;
- import android.view.View;
- import android.view.WindowManager;
- import android.widget.ImageButton;
- import android.widget.ImageView;
- import androidx.activity.EdgeToEdge;
- import androidx.appcompat.app.AppCompatActivity;
- import androidx.cardview.widget.CardView;
- import androidx.core.graphics.Insets;
- import androidx.core.view.ViewCompat;
- import androidx.core.view.WindowInsetsCompat;
- import java.util.Random;
- public class MainActivity extends AppCompatActivity {
- ImageButton home, retry;
- ImageView one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve;
- Bitmap[] images = new Bitmap[6];
- Bitmap defImage;
- ImageView firstClicked = null;
- boolean canClick = true;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- setUIVariables();
- setImages();
- setRandomizedPair();
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
- WindowManager.LayoutParams.FLAG_FULLSCREEN);
- }
- void setRandomizedPair() {
- int[] pairImages = {0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5};
- shuffleArray(pairImages);
- one.setTag(pairImages[0]);
- two.setTag(pairImages[1]);
- three.setTag(pairImages[2]);
- four.setTag(pairImages[3]);
- five.setTag(pairImages[4]);
- six.setTag(pairImages[5]);
- seven.setTag(pairImages[6]);
- eight.setTag(pairImages[7]);
- nine.setTag(pairImages[8]);
- ten.setTag(pairImages[9]);
- eleven.setTag(pairImages[10]);
- twelve.setTag(pairImages[11]);
- }
- void setImages() {
- defImage = ((BitmapDrawable) one.getDrawable()).getBitmap();
- for (int i = 0; i < images.length; i++) {
- int resID = getResources().getIdentifier("flip" + (i + 1), "drawable", getPackageName());
- images[i] = BitmapFactory.decodeResource(getResources(), resID);
- }
- }
- void setUIVariables() {
- one = findViewById(R.id.one);
- two = findViewById(R.id.two);
- three = findViewById(R.id.three);
- four = findViewById(R.id.four);
- five = findViewById(R.id.five);
- six = findViewById(R.id.six);
- seven = findViewById(R.id.seven);
- eight = findViewById(R.id.eight);
- nine = findViewById(R.id.nine);
- ten = findViewById(R.id.ten);
- eleven = findViewById(R.id.eleven);
- twelve = findViewById(R.id.twelve);
- retry = findViewById(R.id.retryBtn);
- home = findViewById(R.id.homeBtn);
- View.OnClickListener onClickListener = new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- handleImageClick((ImageView) view);
- }
- };
- one.setOnClickListener(onClickListener);
- two.setOnClickListener(onClickListener);
- three.setOnClickListener(onClickListener);
- four.setOnClickListener(onClickListener);
- five.setOnClickListener(onClickListener);
- six.setOnClickListener(onClickListener);
- seven.setOnClickListener(onClickListener);
- eight.setOnClickListener(onClickListener);
- nine.setOnClickListener(onClickListener);
- ten.setOnClickListener(onClickListener);
- eleven.setOnClickListener(onClickListener);
- twelve.setOnClickListener(onClickListener);
- home.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- startActivity(new Intent(MainActivity.this, homeScreen.class));
- }
- });
- retry.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = getIntent();
- finish();
- startActivity(intent);
- }
- });
- }
- private void shuffleArray(int[] array) {
- Random rnd = new Random();
- for (int i = array.length - 1; i > 0; i--) {
- int index = rnd.nextInt(i + 1);
- int temp = array[index];
- array[index] = array[i];
- array[i] = temp;
- }
- }
- void handleImageClick(ImageView imageView) {
- if (imageView == firstClicked || !canClick)
- return;
- int pairID = (int) imageView.getTag();
- Bitmap image = images[pairID];
- imageView.setImageBitmap(image);
- if (firstClicked == null) {
- firstClicked = imageView;
- } else {
- canClick = false;
- if ((int) firstClicked.getTag() == pairID) {
- firstClicked.setEnabled(false);
- imageView.setEnabled(false);
- firstClicked = null;
- canClick = true;
- if(checkWin()) {
- startActivity(new Intent(MainActivity.this, winScreen.class));
- }
- } else {
- imageView.postDelayed(new Runnable() {
- @Override
- public void run() {
- // Reset image views to default image
- firstClicked.setImageBitmap(defImage);
- imageView.setImageBitmap(defImage);
- firstClicked = null;
- canClick = true;
- }
- }, 1000);
- }
- }
- }
- boolean checkWin() {
- ImageView[] img = new ImageView[] {
- one, two, three, four, five, six,
- seven, eight, nine, ten, eleven, twelve
- };
- for (int i = 0; i < img.length; i++) {
- if(img[i].isEnabled()) return false;
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement