import java.util.ArrayList;
import java.util.Iterator;

/**
 * A deck of playing cards (using ArrayList).
 *
 * @author Chris Mayfield
 * @version 04/23/2025
 */
public class Deck implements Iterable<Card> {

    private ArrayList<Card> cards;

    /**
     * Constructs a standard deck of 52 cards.
     */
    public Deck() {
        cards = new ArrayList<>();
        for (int suit = 0; suit <= 3; suit++) {
            for (int rank = 1; rank <= 13; rank++) {
                cards.add(new Card(rank, suit));
            }
        }
    }

    @Override
    public String toString() {
        return cards.toString();
    }

    @Override
    public Iterator<Card> iterator() {
        return cards.iterator();
    }

}
