21点游戏不能用Java

21点游戏不能用Java,java,runtime-error,shuffle,blackjack,Java,Runtime Error,Shuffle,Blackjack,这是我的问题的基本步骤。 1.我洗牌我的牌组和显示卡,以确保它洗牌工作完美。 2.我玩21点游戏,做得很好。 3.我再一次洗牌,再一次展示牌,但它不起作用。 你们可能会问的一些问题的答案: 1.整个程序处于一个大的while循环中,除非我选择退出游戏作为选项,否则程序不会结束。 2.我试着再次展示我的牌组,没有第二次洗牌,效果很好 public Card deal() { Card temp; temp = storage[top]; storage[top]

这是我的问题的基本步骤。 1.我洗牌我的牌组和显示卡,以确保它洗牌工作完美。 2.我玩21点游戏,做得很好。
3.我再一次洗牌,再一次展示牌,但它不起作用。 你们可能会问的一些问题的答案: 1.整个程序处于一个大的while循环中,除非我选择退出游戏作为选项,否则程序不会结束。 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();

}
我的代码来自deck.display

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

}

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

您能为我们提供堆栈跟踪吗?你也可以用它来洗牌。如果没有超长的话,完整的代码会有帮助。然后再次显示卡片,但它不起作用。它以什么方式不起作用?它做什么或不做什么?请具体一点。我得到一个空点例外好的,把整件事都贴出来,这样我们至少可以看到第55行实际上是什么
public void display ()
{
    for (int i = top; i<storage.length; i++)
        storage[i].display();

}