I have four nearly identical while-lopps in my program. The program is going through 3 of them but getting stuck in the fourth (the last).
What I am trying to achieve is a program that gives every player 13 random playing cards.
I have add the relevant piece of the program below.
public static void main(String[] args) {
String[] cards = new String[53];
cards[1] = "1k"; cards[2] = "2k"; cards[3] = "3k"; cards[4] = "4k"; cards[5] = "5k"; cards[6] = "6k";
cards[7] = "7k"; cards[8] = "8k"; cards[9] = "9k"; cards[10] = "10k"; cards[11] = "11k"; cards[12] = "12k";
cards[13] = "13k";
cards[14] = "1h"; cards[15] = "2h"; cards[16] = "3h"; cards[17] = "4h"; cards[18] = "5h"; cards[19] = "6h";
cards[20] = "7h"; cards[21] = "8h"; cards[22] = "9h"; cards[23] = "10h"; cards[24] = "11h"; cards[25] = "12h";
cards[26] = "13h";
cards[27] = "1r"; cards[28] = "2r"; cards[29] = "3r"; cards[30] = "4r"; cards[31] = "5r"; cards[32] = "6r";
cards[33] = "7r"; cards[34] = "8r"; cards[35] = "9r"; cards[36] = "10r"; cards[37] = "11r"; cards[38] = "12r";
cards[39] = "13k";
cards[40] = "1s"; cards[41] = "2s"; cards[42] = "3s"; cards[43] = "4s"; cards[44] = "5s"; cards[45] = "6s";
cards[46] = "7s"; cards[47] = "8s"; cards[48] = "9s"; cards[49] = "10s"; cards[50] = "11s"; cards[51] = "12s";
cards[52] = "13s";
String[] player1 = new String[14];
String[] player2 = new String[14];
String[] player4 = new String[14];
String[] player3 = new String[14];
String used = "";
int i1 = 0;
int i2 = 0;
int i3 = 0;
int i4 = 0;
while (true) {
Random rand1 = new Random();
int irand1 = rand1.nextInt(51) + 1 ;
String card = cards[irand1];
if (i1 == 14)
break;
if (used.contains(card))
continue;
else {
player1[i1] = card;
used = used + " " + card;
i1++;
}
}
while (true) {
Random rand2 = new Random();
int irand2 = rand2.nextInt(51) + 1 ;
String card2 = cards[irand2];
if (i2 == 14)
break;
if ( used.contains(card2))
continue;
else {
player2[i2] = card2;
used = used + " " + card2;
i2++;
}
}
while (true) {
Random rand3 = new Random();
int irand3 = rand3.nextInt(51) + 1;
String card3 = cards[irand3];
if (i3 == 14)
break;
if (used.contains(card3))
continue;
else {
player3[i3] = card3;
used = used + " " + card3;
i3++;
}
}
while (true) {
Random rand4 = new Random();
int irand4 = rand4.nextInt(51) + 1;
String card4 = cards[irand4];
if (i4 == 14)
break;
if (used.contains(card4))
continue;
else {
player4[i4] = card4;
used = used + " " + card4;
i4++;
}
}
}
}
To clarify, the while-loop the program is getting stuck in is:
while (true) {
Random rand4 = new Random();
int irand4 = rand4.nextInt(51) + 1;
String card4 = cards[irand4];
if (i4 == 14)
break;
if (used.contains(card4))
continue;
else {
player4[i4] = card4;
used = used + " " + card4;
i4++;
}
}
Any help would be appreciated, Thanks!
Aucun commentaire:
Enregistrer un commentaire