Класс Deck

Далее создаем класс «Колода карт». Под колодой будем понимать некоторую стопку карт, содержащую от 0 до 36 карт. По одной такой колоде будет у каждого игрока и две на столе, куда игроки будут выкладывать карты для сравнения.

Щелкните правой клавишей мыши на названии пакета cardgame в окне проектов (слева вверху).В появившемся контекстном меню выберите
Создать → Класс Java... Укажите имя класса Deck. Добавьте в него следующее содержимое:

//колода это динамический массив из объектов типа Card

private ArrayList<Card> deck;

//конструктор

public Deck(){

deck = new ArrayList<>(36);//указываем емкость ==36

}

//возвращает количество карт в колоде

public int getCount(){ return deck.size();}

//определяет: есть ли такая же карта в колоде

public boolean isPresent(Card pCard){

for(Card x: deck)

if(x.equals(pCard))

return true;

return false;

}

//добавляем новую карту на верх колоды

public void putInTop(Card pCard){

deck.add(0, pCard);

}

//добавляем новую карту в конец колоды

public void putInTail(Card pCard) {

deck.add(pCard);

}

//берем карту сверху

//если попытаемся взять карту из пустой колоды,

//метод вернет null

public Card take(){

Card card;

try{

card = deck.remove(0);

}catch(IndexOutOfBoundsException e){

return null;

}

return card;

}

//переносим все карты из нашей колоды в другую,

//которая указана в параметре

public void moveToOtherDeck(Deck otherDeck){

for (Card x: deck) {

otherDeck.putInTail(x);

}

deck.clear();

}

//очищаем колоду

public void clear(){ deck.clear();}

//перетасовка калоды

public void mix(){

//написать самим по следующему алгоритму:

//берем два случайных числа в диапазоне от 0 до количества

//карт в колоде, это будут индексы карт

//и меняем эти карты местами

//повторяем эту операцию 300 раз

}

//отображение колоды на форме в указанном ЭУ

public void show(JLabel lb){

if(deck.isEmpty()){

lb.setIcon(new ImageIcon(Card.cardPicArray[Card.NULL]));

lb.invalidate();

return;

}

Card topCard = deck.get(0);

lb.setIcon(new ImageIcon(topCard.getCardPic()));

lb.invalidate();

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: