比较卡片逻辑

时间:2016-03-31 14:44:18

标签: java

我正在尝试做一个疯狂的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;
}

}

1 个答案:

答案 0 :(得分:0)

我没有看到你的compare / equals方法,但这将是card1.equals(card2)的逻辑:

if(card1.getSuit() == card2.getSuit())
    return true;
else
    return false
相关问题