gpt4 book ai didi

java - 保存其元素可以稍后在利益相关者之间分配的元素的最佳数据结构?

转载 作者:行者123 更新时间:2023-12-01 15:30:11 25 4
gpt4 key购买 nike

我正在尝试开发一款 UNO 纸牌游戏,现在我需要一个可以容纳整个牌组的数据结构,然后我可以将其中的一部分分发到几个地方(玩家、弃牌堆和抽牌堆)。代码会是这样的:

public class UnoGame
{
public UnoGame()
{
SomeDataStructure<Card> unoDeck = generateUnoCards();
List<Cards> player1 = unoDeck.get(7);
List<Cards> player2 = unoDeck.get(7);
List<Cards> discardPile = unoDeck.get(1);
List<Cards> drawPile = unoDeck.getRest();
}

private static SomeDataStructure<Card> generateUnoCards()
{
SomeDataStructure<Card> cards = new SomeDataStructure<Card>(108);
// Here we can create the proper cards and add them to the data structre
Collections.shuffle(cards);
return cards;
}
}

那么,Java中有没有内置的数据结构可以满足我的要求呢?或者我应该实现自己的数据结构?

最佳答案

目前还不清楚为什么你需要一些特别的东西。我会根据真实游戏对其进行建模:所有纸牌的堆栈(使用 LinkedList<T> 作为堆栈实现),然后您将纸牌拿下来以获得一手牌,并且使用它稍后取卡。我会用一个单独的类来为每个玩家建模......即使最初它只包含一个 List<Card>或类似的东西。

List<Player> players = new ArrayList<Player>();
LinkedList<Card> deck = createDeck(); // This should shuffle too
for (int i = 0; i < playerCount; i++) {
Player player = new Player();
players.add(player);
for (int j = 0; j < 7; j++) {
player.addCard(deck.removeLast());
}
}
LinkedList<Card> discards = new LinkedList<Card>();

在每一点上,如果你考虑一下物理游戏中会发生什么,那应该相当容易。

关于java - 保存其元素可以稍后在利益相关者之间分配的元素的最佳数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9627888/

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