1
votes

Boucle imbriquée pour pour imprimer un ensemble de valeurs à partir de la liste des tableaux

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));

    }
}


0 commentaires

3 Réponses :


0
votes

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));
        }
    }
}


0 commentaires

0
votes

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));
        }
    }
}


0 commentaires

0
votes

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));
        }
    }
}


0 commentaires