у меня есть пустой массив при попытке инициализировать его значениями из enum - PullRequest
0 голосов
/ 22 октября 2018

У меня есть класс Card с полями suit и value из enum-файлов, и я хочу инициализировать массив карт, card имеет такие поля, как suit и value, но в конце концов a имеет пустой список, кажется, что проблема в инициализациис этими циклами for в классе колоды, но я не знаю, как сделать это правильно со значениями из перечислений, я просто не хочу добавлять одну карту за другой вместо списка, чтобы сделать это с циклами (как правильно инициализировать массив)

public enum Suits {
    HEART, DIAMOND, CLUB, SPADE;

}
public enum ValuesOfCards {
SEVEN,EIGHT,NINE,TENTH,JACK,QUEEN,KING,ACE;

}


public class Card {
public static String mast;
private static int points;
private Suits suit;
private ValuesOfCards vof;


public Card( Suits suit, ValuesOfCards vof) {

    this.suit = suit;
    this.vof = vof;
}

@Override
public String toString() {
    return "Card{" +
            "suit=" + suit +
            ", vof=" + vof +
            '}';
}
}


import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;


public class Deck {
private ArrayList<Card> deckOfCards;


public Deck() {
    this.deckOfCards = new ArrayList<>();
    initializeDeck();

}

public void initializeDeck(){
    deckOfCards = new ArrayList<>(32);
    for (Card c : deckOfCards){
        for(Suits s : Suits.values()){
            for (ValuesOfCards v : ValuesOfCards.values()){
                deckOfCards.add(new Card(s,v));

            }
        }

    }


}

public ArrayList<Card> getDeckOfCards() {

    return deckOfCards;
}

public ArrayList<Card> shuffleDeckOfCards(){
    ArrayList<Card> list = new ArrayList<>();
    Collections.shuffle(list);
    return list;
}

@Override
public String toString() {
    return "Deck{" +
            "deckOfCards=" + deckOfCards +
            '}';
}
}
public class Game {
public static void main(String[] args) {
    Deck deck = new Deck();
    deck.initializeDeck();
    System.out.println(  deck.getDeckOfCards());
    deck.shuffleDeckOfCards();
    System.out.println(deck.getDeckOfCards());
}
}

1 Ответ

0 голосов
/ 22 октября 2018

Просто удалите строку

for (Card c : deckOfCards){

... и соответствующую закрывающую фигурную скобку.

Итерирование по пустому массиву ArrayList deckOfCards означает, что следующие два цикла for не будут выполнены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...