用一副纸牌填充堆栈 Java
Populate stack with deck of cards Java
我目前正在设计一个 java 应用程序,它将对洗好的一副纸牌执行许多不同的操作。在应用程序中我有:
- Stack.java:这是程序的接口,包括pop,push,peek等方法
- Deck.java: 我的牌组 class,它实现了堆栈
- Card.java: 卡片对象 class
- Shuffle.java: 包含在卡片上执行随机洗牌的代码
- CardForce.java: 主要 class
我的程序中的卡片可以描述为具有 face(A,2,3,4..J,K,Q)
、suit(Hearts,Diamonds,Clubs,Spades)
和对应于面部的值,即
A = 1, 2 = 2, 3 = 3
等等。
public Card(String cardFace, String cardSuit, int cardValue){
face = cardFace;
suit = cardSuit;
value = cardValue;
}//ends Card
目前我的卡片存储在我的套牌中的 ArrayList 中 class。
public class Deck implements Stack{
private List<Card> cards;
private int size;//number of cards in deck
public Deck(String[] faces, String[] suits, int[] values){
cards = new ArrayList<Card>();
for(String suit: suits)
for(int value = 0; value < values.length && value < faces.length; value++){
Card a = new Card(faces[value], suit, values[value]);
cards.add(a);
}
size = cards.size();
//////////////////////////////////////shuffle();
shuffle();
}//ends deck
我希望将我的牌组从数组列表更改为堆栈,这样我就可以执行弹出、推送和查看等操作。也欢迎在列表转换为堆栈后如何实现这些操作的任何帮助。
只需在 JDK 中使用 Stack
class 即可支持这些功能。
您可以使用数组列表填充 Stack
。
List<Card> list = your array list
Stack<Card> stack = new Stack<>();
stack.addAll(list);
您只需将堆栈函数添加到您的 Deck class 并将 ArrayList 用作堆栈即可。像这样:
public void push(Card c) {
cards.add(c);
}
public Card pop() {
Card c = cards.get(cards.size() - 1);
cards.remove(cards.size() - 1);
return c;
}
public Card peek() {
return cards.get(cards.size() - 1);
}
您需要对 pop
和 peek
添加检查以确保您的套牌中确实有纸牌,但这几乎涵盖了它。
我目前正在设计一个 java 应用程序,它将对洗好的一副纸牌执行许多不同的操作。在应用程序中我有:
- Stack.java:这是程序的接口,包括pop,push,peek等方法
- Deck.java: 我的牌组 class,它实现了堆栈
- Card.java: 卡片对象 class
- Shuffle.java: 包含在卡片上执行随机洗牌的代码
- CardForce.java: 主要 class
我的程序中的卡片可以描述为具有 face(A,2,3,4..J,K,Q)
、suit(Hearts,Diamonds,Clubs,Spades)
和对应于面部的值,即
A = 1, 2 = 2, 3 = 3
等等。
public Card(String cardFace, String cardSuit, int cardValue){
face = cardFace;
suit = cardSuit;
value = cardValue;
}//ends Card
目前我的卡片存储在我的套牌中的 ArrayList 中 class。
public class Deck implements Stack{
private List<Card> cards;
private int size;//number of cards in deck
public Deck(String[] faces, String[] suits, int[] values){
cards = new ArrayList<Card>();
for(String suit: suits)
for(int value = 0; value < values.length && value < faces.length; value++){
Card a = new Card(faces[value], suit, values[value]);
cards.add(a);
}
size = cards.size();
//////////////////////////////////////shuffle();
shuffle();
}//ends deck
我希望将我的牌组从数组列表更改为堆栈,这样我就可以执行弹出、推送和查看等操作。也欢迎在列表转换为堆栈后如何实现这些操作的任何帮助。
只需在 JDK 中使用 Stack
class 即可支持这些功能。
您可以使用数组列表填充 Stack
。
List<Card> list = your array list
Stack<Card> stack = new Stack<>();
stack.addAll(list);
您只需将堆栈函数添加到您的 Deck class 并将 ArrayList 用作堆栈即可。像这样:
public void push(Card c) {
cards.add(c);
}
public Card pop() {
Card c = cards.get(cards.size() - 1);
cards.remove(cards.size() - 1);
return c;
}
public Card peek() {
return cards.get(cards.size() - 1);
}
您需要对 pop
和 peek
添加检查以确保您的套牌中确实有纸牌,但这几乎涵盖了它。