我正在尝试制作一个纸牌游戏,它有游戏类、纸牌类、玩家类、副牌类和手牌类。我想让它模拟现实生活,你从一副牌中抽5张牌到你手上
我让我的班级玩家将所有的卡片添加到一个叫做卡片的卡片组中。像这样:
public Player(String name) {
this.name = name;
this.deck = new Deck();
this.deck.addCard(new Card("c1",20, "fire"));
this.deck.addCard(new Card("c2",30, "fire"));
this.deck.addCard(new Card("c3",10,"water")); //etc list goes on
它把它传递给我的班级甲板:
public class Deck {
private List<Card> cards;
public Deck() {
this.cards = new ArrayList<>();
}
public void addCard(Card card) {
this.cards.add(card);
}
我在类手叫手创建了一个手数组列表:
public class Hand {
Deck deck;
private List<Card> hand;
public Hand() {
this.hand = new ArrayList<>();
}
如何将 5 个随机卡牌对象从我的套牌数组列表添加到我的手牌数组列表中?
首先,你需要让牌组足够聪明,能够随机抽取所需数量的牌。甲板代码应该是这样的:
public class Deck {
private List<Card> cards;
public Deck() {
this.cards = new ArrayList<>();
}
public void addCard(Card card) {
this.cards.add(card);
}
public List<Card> getCards(final int amount) {
ArrayList<Card> result = new ArrayList<>();
Random random = new Random();
for (int i = 0; i < amount; i++) {
int randomIndex = random.nextInt(cards.size());
result.add(cards.remove(randomIndex));
}
return result;
}
}
在第二步中,让手访问牌组,对于此任务,牌组应该在手类的内部,如下所示:
public class Hand {
private final Deck deck;
private final int cardsAmount;
private List<Card> cardsInHand;
public Hand(Deck deck, int cardsAmount) {
this.deck = deck;
this.cardsAmount = cardsAmount;
}
public List<Card> cards() {
if(cardsInHand == null) cardsInHand = deck.getCards(cardsAmount);
return cards;
}
}
在现实生活中,玩家知道他应该根据游戏规则从套牌中获得多少张牌,所以我们将牌的数量传递给手牌构造器。当手牌是空的,我们应该从牌组得到牌,当手牌是完整的简单返回呈现的牌。
很抱歉这太模糊了,但代码太多了。 这是一个五卡梭哈游戏。基本上,我试图将对象添加到另一个数组列表中的数组列表中。 这是我创建玩家数组并将手类中的数组添加到其中的地方,至少我认为这就是正在发生的事情: 稍后,我尝试在循环交易中将牌添加到玩家阵列中的手牌阵列中。由于有五张牌,第一个循环进行了五次。第二个是玩家数组的长度(玩家总数),每次应该添加一张卡。 Deck类中有一个deal方法,由以下方法初始化
我在数组列表(嵌套数组列表)中有一个数组列表,如下所示 现在我需要获取存在于arraylist的给定索引中的的实例并为其添加一个值。我使用了以下代码 但是它给了我一个错误 线程"main"java.lang.异常索引:0,大小:0 如何解决这个问题以及为什么会发生这种情况。 谢谢你
我有一类,其中包含非静态列表 下面是<code>问题 我正在为问题对象找到一种方法,使其从另一个类的 Array 列表中删除自身。我的方法是从类中调用 方法并传递。但后来我意识到我不能声明
我试图确定数组列表中的数字是否可以被antoher数组列表中的所有数字整除。我下面的代码输出列表中的所有数字,这些数字可以被中的任何除数整除。我想输出列表中所有除数都可以整除的值,而不是它们中的任何一个。例如,如果我有listdiv=[1,2,3,,5,8]和listdivisor=[2,4]。预期的输出应该是8,但此代码输出2和8。 非常感谢。我们将非常感谢您的努力!
问题内容: 我有以下代码片段,我不明白为什么它不起作用: 有人能指出我正确的方向吗? 我已经看到JonSkeet在另一个问题上的回答,但是那里的最后一个示例对我来说不起作用。即使我将强制类型转换添加到标记为的行或行中,也会出现编译错误。 问题答案: 您始终可以通过明确指定type参数来告诉Java您想要列表:
我想创建一个代码,帮助我将元素从“allWords”ArrayList复制到“差异词”。但他在不同单词ArrayList中的时间我希望一个单词只出现一个,消除“差异词”ArrayList中的冗余。 这是我想出的代码,我没有得到任何输出。 导入java。util。ArrayList; 公共类复制元素{ }