【发布时间】: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