Je crée un programme pour afficher une liste de tableaux de decks de poker. Jusqu'à présent, j'ai deux ensembles d'énumérations qui sont les couleurs et les rangs. Je peux les afficher comme tels
S2 S3 S4 S5 S6 S7 S8 S9 S10 SJ SQ SK SA H2 H3 H4 H5 H6 H7 H8 H9 H10 HJ HQ HK HA D2 D3 D4 D5 D6 D7 D8 D9 D10 DJ DQ DK DA C2 C3 C4 C5 C6 C7 C8 C9 C10 CJ CQ CK CA
Cependant, existe-t-il un moyen d'utiliser des boucles imbriquées pour diviser les combinaisons et les afficher séparément, comme indiqué ci-dessous?
S2 S3 S4 S5 S6 S7 S8 S9 S10 SJ SQ SK SA
H2 H3 H4 H5 H6 H7 H8 H9 H10 HJ HQ HK HA
D2 D3 D4 D5 D6 D7 D8 D9 D10 DJ DQ DK DA
C2 C3 C4 C5 C6 C7 C8 C9 C10 CJ CQ CK CA
Voici ce que j'ai essayé jusqu'à présent:
Méthode Display Deck
public static void main(String args[]) { ArrayList<Decks> list = new ArrayList<Decks>(); decks test = new decks (); test.addDeck(list); printDeck(list); }
J'ai essayé cette boucle for imbriquée mais en vain
// enhanced for loop to add every single card into the arrayList private void addDeck(ArrayList<Decks> values) { for(SuitEnum s : SuitEnum.values ()) { for(RankEnum r : RankEnum.values ()) { values.add(new PlayingCard(s,r)); } } }
Ajouter une méthode de deck
{ for (int i = 0; i < MAXD; i++) { for(int j =0; j < MAXC; j++) { System.out.printf ("%s", values.get(j)); } } }Méthode principale
private static final int MAXC = 13; private static final int MAXD = 52; private static void displayDeck(ArrayList<Decks> values) { for (int i = 0; i < MAXD; i++) { // this prints the entire deck out System.out.printf ("%s", values.get(i)); } }
3 Réponses :
Essayez ceci:
{ for (int i = 0; i < MAXD; i++) { for(int j =0; j < MAXC; j++) { System.out.printf ("%s", values.get(i).get(j)); } } }
Essayez ceci:
{ for (int i = 0; i < MAXD; i++) { for(int j =0; j < MAXC; j++) { int index = i + j * MAXD; System.out.printf ("%s", values.get(index)); } } }
Essayez ceci,
private void addDeck(ArrayList<Decks> values) { int suiteLength = SuitEnum.values().length; int rankLength = RankEnum.values().length; for(int i=0; i<suiteLength; i++) { for(int j=0; j<rankLength; j++) { int index = rankLength * i + j; System.out.printf ("%s", values.get(index)); } } }