我正在尝试制作一个简单的 Blackjack 应用程序,以便我可以练习从 Java 书中学到的知识。
“项目”永远不会被部署,也不“重要”,只是为了让我学习,记住这一点,你认为我存储卡片包的最佳方式是什么?
我的选择似乎是简单数组、二维数组、hashmap 和 arraylist。
一旦我将卡片放入我的 Collection 中,我认为我将构建的方法将是:
shuffleDeck() - 不言自明
removeCardsFromDeck() - 所以这些卡被“用于”游戏
mergeNumberOfDecks(int howMany) - 要合并多少副牌(例如:0或2或4或8)
请记住,您认为哪一个最容易处理: 简单数组、双维数组、hashmap 还是 arraylist?
最佳答案
大多数牌堆/牌组情况最好通过使用 Deque
来解决。 。具有列表和队列方法,并且也是一个集合,因此您可以执行以下操作。
随机播放:由 Collections.shuffle(List)
完成(如果您选择的双端队列也实现了 List)请参阅LinkedList
举个例子
删除卡片: - 理想情况下是顶部卡片,Deque 有 removeFirst()
合并:java.util.collection
有addAll(Collection)
(因此任何实现集合的类都有此方法)
关于Java:声明一叠牌的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19233194/