SenpaiZero

Untitled

May 20th, 2024
10
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 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. }
Add Comment
Please, Sign In to add comment