import java.util.Random; ? public class ArrayNum3 { public static void main(Stri
ID: 3575751 • Letter: I
Question
import java.util.Random;
?
public class ArrayNum3 {
public static void main(String[] args) {
Random r = new Random(24);
boolean [] cards = new boolean[52];
String [] card_type = {"Spades", "Hearts", "Diamonds", "Clubs"};
String [] positions = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"};
for (int i = 0; i < cards.length; i ++) {
cards[i] = false;
}
int cardsleft = 52;
while (cardsleft > 5) {
System.out.println("Next Hand: ");
int cardspicked = 0;
while (cardspicked <5) {
int cardnum = r.nextInt(52);
if (cards[cardnum]) { continue;}
cards[cardnum]=true;
cardsleft= cardsleft - 1;
String position = positions[cardnum % 13];
String type = card_type[cardnum/13];
System.out.println(" Card number " + cardnum + ": " + position + " of " + type);
cardspicked ++;
}
}
}
}
QUESTION 8 Program 3 ArrayNum3: What card number represents the 5 of diamonds?Explanation / Answer
After running this program we get the following out put
Next Hand:
Card number 47: 9 of Clubs
Card number 44: 6 of Clubs
Card number 12: King of Spades
Card number 2: 3 of Spades
Card number 0: Ace of Spades
Next Hand:
Card number 20: 8 of Hearts
Card number 21: 9 of Hearts
Card number 28: 3 of Diamonds
Card number 10: Jack of Spades
Card number 36: Jack of Diamonds
Next Hand:
Card number 33: 8 of Diamonds
Card number 25: King of Hearts
Card number 50: Queen of Clubs
Card number 29: 4 of Diamonds
Card number 8: 9 of Spades
Next Hand:
Card number 45: 7 of Clubs
Card number 17: 5 of Hearts
Card number 19: 7 of Hearts
Card number 48: 10 of Clubs
Card number 3: 4 of Spades
Next Hand:
Card number 37: Queen of Diamonds
Card number 13: Ace of Hearts
Card number 11: Queen of Spades
Card number 27: 2 of Diamonds
Card number 9: 10 of Spades
Next Hand:
Card number 15: 3 of Hearts
Card number 18: 6 of Hearts
Card number 4: 5 of Spades
Card number 34: 9 of Diamonds
Card number 24: Queen of Hearts
Next Hand:
Card number 1: 2 of Spades
Card number 14: 2 of Hearts
Card number 43: 5 of Clubs
Card number 42: 4 of Clubs
Card number 7: 8 of Spades
Next Hand:
Card number 30: 5 of Diamonds //5 of Diamonds
Card number 38: King of Diamonds
Card number 40: 2 of Clubs
Card number 32: 7 of Diamonds
Card number 39: Ace of Clubs
Next Hand:
Card number 16: 4 of Hearts
Card number 6: 7 of Spades
Card number 26: Ace of Diamonds
Card number 51: King of Clubs
Card number 49: Jack of Clubs
Next Hand:
Card number 41: 3 of Clubs
Card number 5: 6 of Spades
Card number 23: Jack of Hearts
Card number 35: 10 of Diamonds
Card number 31: 6 of Diamonds
off course the out put is varies but card position and type does not change with respect to card number.
in above output we found Card number 30 as 5 of Diamonds
Explanation why Card number 30 as 5 of Diamonds :
consider following three statements from program
1. int cardnum = r.nextInt(52)
2. String position = positions[cardnum % 13];
3. String type = card_type[cardnum/13];
first statement states that cardnum is random number
we have total of 52 cards in game indexed as (0 to 51)
second statement and the statement String [] positions = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"}; states that
if the cardnum are 4,17,30, 43 then only we get 5 as its positions
third statement and statement String [] card_type = {"Spades", "Hearts", "Diamonds", "Clubs"}; states that
if the cardnum from 0 to 12 (13 cards) are Spades, 13 to 25 (13 cards) are Hearts and 26 to 38 (13 cards) are Diamonds, the remaining 39-51 (13 cards) are Clubs.
so the the combination of Diamonds and Position 5 gives the cardnum 30.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.