我正在尝试做一个疯狂的8张牌游戏,我觉得比较牌非常困难。例如,Diamond中的3个应该与Jack of Diamond或者Diamond of the Queen或者4个Diamond等相匹配。你能帮我解决这个问题吗?如何在我的Main类中比较这些卡?另外,如何将棋盘上的牌与牌手中的牌进行比较。例如,棋盘上的牌是3个黑桃牌,玩家有2个黑桃牌可以在棋盘牌上玩牌。我如何比较这些? 到目前为止,这是我写的。
public class Card {
protected int suit;
protected int rank;
protected String[] suits = { "Hearts", "Clubs", "Spades", "Diamonds"};
protected String[] ranks = {"Ace", "2", "3", "4", "5", "6","7", "8", "9","10", "Jack", "Queen", "King" };
public Card(int rank, int suit){
this.rank = rank;
this.suit = suit;
}
public int getSuit() {
return suit;
}
public void setSuit(int suit) {
this.suit = suit;
}
public int getRank() {
return rank;
}
public void setRank(int rank) {
this.rank = rank;
}
public String toString(){
return this.ranks[rank] +" of "+ this.suits[suit];
}
}
public class Deck {
private ArrayList<Card> cards; //initialize cards arrayList using the card class
/*
* Create a deck of cards
*/
public Deck() {
cards = new ArrayList<>();
/*
* Fill the ArrayList with all of the cards to build a deck
*/
for (int a = 0; a <= 3; a++) {
for (int b = 0; b <= 12; b++) {
cards.add(new Card(a, b));
}
}
Collections.shuffle(cards); // shuffle the deck of cards
}
/*
* Draw card by "removing" it from the filled cards array
*/
public Card drawCard() {return cards.remove(0);}
public int getTotalCards() {return cards.size();}
}
public class Hand{
ArrayList<Card>handOfPlayer;
String playerName;
public Hand(){
handOfPlayer = new ArrayList<>();
}
public ArrayList<Card> getHandOfPlayer() {
return handOfPlayer;
}
public void setHandOfPlayer(ArrayList<Card> handOfPlayer) {
this.handOfPlayer = handOfPlayer;
}
//print out he cards in player hand
public ArrayList<Card>addCard(Card newCard){
handOfPlayer.add(newCard);
return handOfPlayer;
}
public void displayHand(){
for(int i =1; i<handOfPlayer.size(); i++){
System.out.println(i + ": "+ handOfPlayer.get(i));
}
}
//Display number of cards in player hand
public void displaySize(){
System.out.println(handOfPlayer.size());
}
public String getPlayerName() {
return "Welcome! "+ this.playerName;
}
public void setPlayerName(String playerName) {
this.playerName = playerName;
}
public Card removeCard(int removeCard){
Card cardOfCard = handOfPlayer.remove(removeCard);
return cardOfCard;
}
}
答案 0 :(得分:0)
我没有看到你的compare / equals方法,但这将是card1.equals(card2)的逻辑:
if(card1.getSuit() == card2.getSuit())
return true;
else
return false