Вложенный в цикл для печати набора значений из списка массивов - PullRequest
0 голосов
/ 16 апреля 2019

Я создаю программу для отображения списка массивов покерных колод.Пока у меня есть два набора перечислений, которые являются костюмами и рангами.Я могу отображать их как таковые

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

Однако есть ли способ использовать вложенные циклы для разделения костюмов и их отображения отдельно, как показано ниже?

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

Это то, что я пробовал до сих пор:

Метод отображения колоды

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

    }
}

Я пробовал это вложениядля цикла, но безрезультатно

{
    for (int i = 0; i < MAXD; i++)
    {
        for(int j =0; j < MAXC; j++)
        {
    System.out.printf ("%s", values.get(j));
        }
    }
}

Добавить метод колоды

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

}

Основной метод

 public static void main(String args[]) 
 {
      ArrayList<Decks> list = new ArrayList<Decks>();  

      decks test = new decks ();
      test.addDeck(list);
      printDeck(list);
 }

Ответы [ 3 ]

0 голосов
/ 16 апреля 2019

Попробуйте это:

{
    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 голосов
/ 16 апреля 2019

Попробуйте это,

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 голосов
/ 16 апреля 2019

Попробуйте это:

{
    for (int i = 0; i < MAXD; i++)
    {
        for(int j =0; j < MAXC; j++)
        {
           System.out.printf ("%s", values.get(i).get(j));
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...