package com.company; import java.util.HashMap; import java.util.Map; import java.util.Random; /** * Класс реализующий колоду */ public class Deck { public final int CARD_COUNT = 52; public Card Cards[] = new Card[CARD_COUNT]; Map CardName = new HashMap<>(); /** * Конструктор создает колоду карт */ public Deck() { for (int i = 0; i < CARD_COUNT; i++) { Cards[i] = new Card(); } Build(); CardName.put(2, "2"); CardName.put(3, "3"); CardName.put(4, "4"); CardName.put(5, "5"); CardName.put(6, "6"); CardName.put(7, "7"); CardName.put(8, "8"); CardName.put(9, "9"); CardName.put(10, "10"); CardName.put(11, "J"); CardName.put(12, "Q"); CardName.put(13, "K"); CardName.put(14, "A"); } /** * Метод генерирует колоду */ public void Build() { // Количество различных номиналов (для цикла от 2 до 14 включительно) int denominationCount = (CARD_COUNT / 4) + 2; // Счетчик всех карт (для прохода по массиву cards) int cardCounter = 0; // Цикл foreach (пройти по каджой масти) for (Lear.NAME lear: Lear.NAME.values()) { // Цикл по номиналам (от 2 до 14 включительно) for (int j = 2; j < denominationCount; j++) { // Записать текущую масть в карту с индексом cardCounter Cards[cardCounter].Lear = lear; // Записать текущий номинал в карту с индексом cardCounter // и увеличить счетчик Cards[cardCounter++].setDenomination(j); } } } }