make a program that will produce a deck of fiftytwo cards t
make a program that will produce a deck of fifty-two cards , the cards are in random order every time you run the program, also create a Recursion program to determine the location of the highest value card and the lowest value card , it must be RECURSIVE only and only can have a single search function for both min and the max
(java)
Rank : Ace 2 3 4 5 6 7 8 9 10 Jack Queen King
Suit : Diamond Heart Club Spade
___________________________________
output should be :
random order 52 cards
1.
2.
3.
.....
52.
highest card is in position number :
lowest card is in postiont numer:
Solution
public class CardsDeck {
private static String[] SUITS = {\"Diamonds\", \"Hearts\", \"Clubs\", \"Spades\"};
private static String[] RANKS = {\"Ace\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"Jack\", \"Queen\", \"King\"};
public CardsDeck() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
String[] deck = new String[RANKS.length * SUITS.length];
for (int i = 0; i < RANKS.length; i++){
for (int j = 0; j < SUITS.length; j++){
deck[SUITS.length*i + j] = RANKS[i] + \" of \" + SUITS[j];
}
}
int n = deck.length;
for (int i = 0; i < n; i++) {
int r = (int) (Math.random() * n);
String temp = deck[r];
deck[r] = deck[i];
deck[i] = temp;
}
int index = 1;
for (int i = 0; i < RANKS.length; i++){
for (int j = 0; j < SUITS.length; j++){
System.out.println(index++ +\". \"+deck[SUITS.length*i + j]);
}
}
findMinAndMax(deck,0,false,false);
}
public static void findMinAndMax(String[] deck, int index, boolean minFound, boolean maxFound){
if(deck[index].equalsIgnoreCase(\"King of Spades\")){
System.out.println(\"highest card is in position number: \"+(index+1));
maxFound = true;
}
else if(deck[index].equalsIgnoreCase(\"Ace of Diamonds\")){
System.out.println(\"highest card is in position number: \"+(index+1));
minFound = true;
}
if(minFound && maxFound){
return;
}
else{
findMinAndMax(deck,index+1,minFound,maxFound);
}
}
}
Output1:
1. 7 of Diamonds
2. 10 of Spades
3. 6 of Diamonds
4. 4 of Hearts
5. 10 of Clubs
6. 3 of Hearts
7. 9 of Spades
8. 4 of Clubs
9. Ace of Hearts
10. Ace of Clubs
11. 3 of Clubs
12. 7 of Hearts
13. Ace of Diamonds
14. 2 of Hearts
15. 5 of Clubs
16. 2 of Spades
17. King of Hearts
18. 10 of Diamonds
19. 9 of Diamonds
20. 4 of Spades
21. 10 of Hearts
22. Queen of Diamonds
23. 3 of Spades
24. 5 of Hearts
25. Queen of Spades
26. 5 of Diamonds
27. 3 of Diamonds
28. 6 of Spades
29. Ace of Spades
30. 8 of Diamonds
31. Jack of Spades
32. 6 of Clubs
33. 2 of Clubs
34. 4 of Diamonds
35. Jack of Diamonds
36. 7 of Spades
37. 8 of Spades
38. 8 of Clubs
39. King of Spades
40. 6 of Hearts
41. Queen of Hearts
42. 7 of Clubs
43. 9 of Hearts
44. King of Diamonds
45. Jack of Hearts
46. 9 of Clubs
47. 8 of Hearts
48. King of Clubs
49. 2 of Diamonds
50. 5 of Spades
51. Jack of Clubs
52. Queen of Clubs
highest card is in position number: 13
highest card is in position number: 39
output2:
1. 4 of Hearts
2. Ace of Clubs
3. 4 of Diamonds
4. 3 of Diamonds
5. 6 of Spades
6. 8 of Hearts
7. 6 of Hearts
8. 2 of Spades
9. 8 of Clubs
10. 4 of Spades
11. 10 of Hearts
12. 3 of Spades
13. King of Hearts
14. 10 of Clubs
15. 5 of Hearts
16. 3 of Hearts
17. 10 of Spades
18. 9 of Spades
19. 7 of Hearts
20. Jack of Hearts
21. 5 of Spades
22. Jack of Clubs
23. 8 of Diamonds
24. 7 of Spades
25. 6 of Diamonds
26. 2 of Clubs
27. King of Clubs
28. 7 of Diamonds
29. 5 of Clubs
30. 4 of Clubs
31. Ace of Diamonds
32. Queen of Clubs
33. 9 of Clubs
34. 8 of Spades
35. 7 of Clubs
36. Jack of Diamonds
37. Queen of Spades
38. Queen of Hearts
39. 9 of Hearts
40. 3 of Clubs
41. Ace of Hearts
42. 10 of Diamonds
43. Queen of Diamonds
44. King of Spades
45. King of Diamonds
46. 9 of Diamonds
47. 2 of Diamonds
48. 2 of Hearts
49. 5 of Diamonds
50. Ace of Spades
51. 6 of Clubs
52. Jack of Spades
highest card is in position number: 31
highest card is in position number: 44



