【发布时间】:2021-08-05 23:25:39
【问题描述】:
我有一个学校作业,我必须使用 ArrayLists 制作 Elevens 纸牌游戏。我最近才知道它们是如何工作的,所以我不是最好的。我遇到的唯一问题是我的洗牌方法。代码如下:
public void shuffle()
{
while (dealt.size() > 0)
{
Card temp = dealt.remove(0);
undealt.add(temp);
}
while (dealt.size() > 0)
{
for (int i = 0; i < 100; i++)
{
int random = (int) Math.floor(Math.random() * undealt.size());
Card temp = undealt.remove(random);
undealt.add(undealt.size(), temp);
}
}
}
您可能需要参考的代码:
public Deck(String[] ranks, String[] suits, int[] values)
{
undealt = new ArrayList<Card>();
dealt = new ArrayList<Card>();
for (int i = 0; i < ranks.length; i++)
{
for (int j = 0; j < suits.length; j++)
{
Card c = new Card(ranks[i], suits[j], values[i]);
undealt.add(c);
}
}
shuffle();
}
有人有什么建议吗?谢谢!
【问题讨论】:
-
为什么不使用 Collections.shuffle()?
-
您的代码中有很多错误。 shuffle 方法中的第二个循环无法处理任何内容,因为它的条件
dealt.size() > 0是不可行的 - 您之前在第一个循环中清空了dealtarraylist。尝试自己解决这些问题,您将获得进一步的帮助。 -
@bimjhi 对不起,我对 Java 很陌生,所以没有意识到这是一个问题。如果我是,我就不会发帖了。
标签: java for-loop arraylist methods shuffle