【问题标题】:BlackJack game not working Java二十一点游戏无法运行Java
【发布时间】:2015-09-16 04:44:22
【问题描述】:

这几乎是我的问题的步骤。 1.我洗牌我的牌组和展示牌以确保它洗牌(完美运行)。 2. 我玩我的二十一点游戏,完美运行。 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();

}

这是我的堆栈跟踪 线程“主”java.lang.NullPointerException 中的异常 Ĵ的C 在 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();

}

【问题讨论】:

  • 你能给我们提供堆栈跟踪吗?你也可以使用Collections.shuffle() 随机播放。
  • 如果代码不是很长的话,最好有完整的代码。
  • "再显示卡还是不行" 什么情况下不行?它做什么或不做什么?请具体。
  • 我得到一个 NullPointerException

标签: java runtime-error shuffle blackjack


【解决方案1】:

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

【讨论】:

  • 好伤心,把整个事情贴出来,这样我们至少可以看到第 55 行 实际上是什么
猜你喜欢
  • 1970-01-01
  • 2013-10-08
  • 2023-03-21
  • 2020-05-18
  • 1970-01-01
  • 2021-05-29
  • 1970-01-01
  • 2014-10-22
  • 2022-11-12
相关资源
最近更新 更多