gpt4 book ai didi

Java - war 游戏 - 从数组中获取对象

转载 作者:太空宇宙 更新时间:2023-11-04 14:59:41 26 4
gpt4 key购买 nike

我是 Java 新手,我很难理解其中一个概念。

我目前正在做的作业是卡牌游戏 war 。当前的指示是让我从一副牌中随机取出一张牌。

我创建了一个数组,但它是 Card 类的数组。该类基本上通过将 int 和 String 添加在一起来创建卡片。然后我从该类创建了数组。在我看来,我的数组中既没有 int 也没有 String,对吗?

现在我需要从牌组中随机取出一张牌并将其交给玩家。这就是我迷路的地方。我想我可以使用 Random 来删除随机卡,但我似乎总是遇到错误。

我并不是要求你为我做作业,但如果你愿意,请为我指出正确的方向,并在我感到困惑时纠正我。

我目前正在学习的类(class):

import java.util.Random;
import java.util.*;

public class War3
{

Random ran = new Random();

public FullDeck randomCard()
{
ArrayList <FullDeck> randCard = new ArrayList <FullDeck> (52);

int index = ran.nextInt(randCard.size());
FullDeck x = randCard.remove(index);
return x;
}

public void display()
{
System.out.println("Your card is" + randomCard());

}
}

整个项目需要澄清Java - War Game - Gist

提前非常感谢。

最佳答案

ArrayList <FullDeck> randCard = new ArrayList <FullDeck> (52);

这会创建一个ArrayList 。您不需要指定数字 52,因为 ArrayList s 动态增长,而不是 Array s。该调用类似于 ArrayList <FullDeck> randCard = new ArrayList <FullDeck> (); ,区别在于您使用的构造函数设置 ArrayList初始容量到 52。这绝不限制 ArrayList 的大小。不过。

无论如何,您正在创建一个新的空 ArrayList 。那么你想要size ,但由于您没有将任何内容放入列表中,因此它仍然是空的,大小为零。然后您尝试调用ran.nextInt(0) ... nextInt(int n)期望一个大于零的数字。来自javadoc:

public int nextInt(int n) {
if (n <= 0)
throw new IllegalArgumentException("n must be positive");

关于Java - war 游戏 - 从数组中获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22732633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com