BlackJack游戏没有使用Java

时间:2015-09-15 14:58:00

标签: java runtime-error shuffle blackjack

这几乎是我的问题。 我洗牌我的牌组并展示牌以确保它洗牌(完美地运作)。 我玩我的二十一点游戏,完美地工作。 我再次给我的牌组洗牌,再次展示牌,但它不起作用。 回答你们可能会问的一些问题: 1.整个程序处于一个很长的循环中,除非我选择退出游戏作为选项,否则程序不会结束。 2.我试图再次显示我的牌组,而不是第二次洗牌,它运作正常。

 public Card deal()
 {
     Card temp;
     temp = storage[top];
     storage[top] = null;
     top++;
     return temp;
 }

 public void shuffle()
 {

int n = storage.length;
for (int i = 0; i < storage.length; i++) 
    {
    // Get a random index of the array past i.
    int random = i + (int) (Math.random() * (n - i));
    // Swap the random element with the present element.
    Card randomElement = storage[random];
    storage[random] = storage[i];
    storage[i] = randomElement;
 }
 }

public void display ()
{
    for (int i = top; i<52; i++)
        storage[i].display();

}

这是我的堆栈跟踪 线程“main”java.lang.NullPointerException中的异常 C的J     在blackjack.Deck.display(Deck.java:104)     在blackjack.BlackJack.main(BlackJack.java:55) Java结果:1

case 3:
    {
      myDeck.display();
      break;
    }

和来自deck.display的代码

public void display ()
{
    for (int i = top; i<storage.length; i++)
        storage[i].display();

}

1 个答案:

答案 0 :(得分:0)

你永远不会重置你的顶级变量,我认为你需要这样做。 发布堆栈跟踪和其余代码。