簡體   English   中英

卡片經銷商的Java模擬-ArrayIndexOutOfBoundsException

[英]java simulation of a card dealer - ArrayIndexOutOfBoundsException

我在執行代碼時遇到麻煩,無法准確查明錯誤的根源,或者為什么,也許有人可以看一下,並在可能的情況下向我提供一些反饋。

錯誤信息:

51
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
3 of Clubs, Diamonds, Hearts, Spades
    at javacards.Card.toString(Card.java:15)
    at javacards.CardRun.main(CardRun.java:15)

CardRun類:

public class CardRun {

public static void main(String[] args)
{
    Deck deck = new Deck();
    Card C;

    System.out.println(deck.getTotalCards());

    while(deck.getTotalCards() != 0)
    {
        C = deck.drawFromDeck();
        System.out.println(C.toString());
    }
}

卡類

public class Card {
    private int card, suit;
    private static String[] suits = {"Clubs, Diamonds, Hearts, Spades"};
    private static String[] cards = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"};

    Card(int suit, int card)
    {
        this.card = card;
        this.suit = suit;
    }

    public @Override String toString()
    {
        return cards[card] + " of " + suits[suit];
    }

    public int getCard()
    {
        return card;
    }

    public int getSuit()
    {
        return suit;
    }
}

甲板類

public class Deck {

private Card[]cards;
int i;

Deck()
{
    i = 51; 
    cards = new Card[52];
    int x = 0;
    for(int a=0; a<=3; a++)
    {
        for(int b=0; b<=12; b++)
        {
            cards[x] = new Card(a,b);
            x++;
        }
    }
}

public Card drawFromDeck()
{
    Random generator = new Random();
    int index = 0;

    index = generator.nextInt(i);
    Card temp = cards[index];
    cards[index] = cards[i];
    cards[i] = null;
    i--;
    return temp;
}

public int getTotalCards()
{
    return i;
}
}

該數組:

private static String[] suits = {"Clubs, Diamonds, Hearts, Spades"};

僅包含一項-您可能是說:

private static String[] suits = {"Clubs", "Diamonds", "Hearts", "Spades"};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM