12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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<Integer, String> 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);
- }
- }
- }
- }
|