Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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.