Я пытаюсь написать код, который создает два массива, один с костюмами, один со значениями, колоды карт. Затем он случайным образом перетасовывает карты и распечатывает карты, которые раздаются каждому из четырех игроков. Если бы кто-нибудь мог дать мне некоторые идеи о том, как исходить из того, что у меня есть, я был бы благодарен. Основные проблемы, с которыми я столкнулся, - как переключить массивы (перетасовать), а затем, как показать, что игроки получают (имеют дело).Работа с четырьмя случайными руками из колоды карт в Java с использованием массивов
public class BridgeHands
{
private card[] deck;
private int cardsUsed;
public static void dealHands()
{
final int SUITS = 4; // number of suits in a standard deck
final int CARDS_PER_SUIT = 13; // number of cards in each suit
final int CARDS = SUITS*CARDS_PER_SUIT; // number of cards in a standard deck
deck = new Card[CARDS];
int cardCt = 0;
for(int suit = 0; suit < SUITS; suit++)
{
for(int value = 1; value < CARDS_PER_SUIT; value++)
{
deck[cardCt] = new Card(value,suit);
cardCt++;
}
cards used = 0;
}
}
public void shuffle()
{
for(int i = deck.length-1; i > 0; i--)
{
int rand = (int)(Math.random()*(i+1));
Card temp = deck[i];
deck[i] = deck[rand];
deck [rand] = temp;
}
cards used = 0;
}
public int cardsLeft()
{
int cardsUsed = 0;
return deck.length - cardsUsed;
}
public Card dealCard()
{
if(cardsUsed == deck.length)
throw new IllegalStateException("No cards are left in the deck.");
cardsUsed++;
return deck[cardsUsed - 1];
}
final int HANDS = 4;
final int CARDS_PER_HAND = CARDS/HANDS;
public static String cardName(int suit, int value)
{
final String[] CARD_NAMES =
{"not used", "ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "jack", "queen", "king"};
final String[] SUIT_NAMES =
{"spades", "clubs", "diamonds", "hearts"};
return CARD_NAMES[value] + " of " + SUIT_NAMES[suit];
}
}
Перемешать массив не сложно, см. [This] (http://stackoverflow.com/a/3732080/3755692) ответ. И что вы подразумеваете под _ «как показать, что игроки получают (дело)» _? – msrd0
И вы пропустите ';' в этой строке: 'count = count - 1'. BTW Я бы заменил это на 'count -;' – msrd0
IIWY Я бы создал классы 'Card' и' Deck' и 'SUITE' и' VALUE'. Тогда все вместе; нет необходимости отслеживать кучу вещей при перетасовке. – ChiefTwoPencils