2016-03-31 20 views
0

Çılgın 8 kart oyunu oynamaya çalışıyorum ve bunu kartlarla karşılaştırmak çok zor buluyorum. Örneğin, 3 of Diamond, Diamond of Diamond ya da Diamond of Queen ya da 4 Diamond of cetera ile eşleşmelidir. Bunu yaparken mantıkla bana yardımcı olabilir misiniz? Bu kartları Ana sınıfımda nasıl karşılaştırırım? Ayrıca, karttaki kartı oyuncu elindeki kartlarla nasıl karşılaştırırım. Örneğin, karttaki kart maça 3'dür ve oyuncunun kartta oynayabileceği 2 maça vardır. Bunları nasıl karşılaştırırım? Şimdiye kadar yazdığım şey bu.Karşılaştırma Kartları Mantık

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

Belki de tam olarak şu soruyu alamıyorum: sadece karşılaştırma yani card1.getSuit() == card2, getSuit()? –

+0

Aşağıdaki link oyunun kurallarını açıklar. Belki okuduktan sonra, ne hakkında konuştuğumu daha iyi anlayabilirsiniz.https: //www.pagat.com/eights/crazy8s.html – Intelligent

+0

@Intelligent bu benim için bir ölü bağlantı thats –

cevap

0

(Ben senin/eşittir karşılaştırma yöntemi görmüyorum, ama bu card1.equals için mantık olur card2):

if(card1.getSuit() == card2.getSuit()) 
    return true; 
else 
    return false 
+0

Ben sadece iki maç istiyorum thinki takım elbise dayalı kart. –

+0

@RC. Soruyu yeniden okuduktan sonra, her ikisi de bu yöntemleri döndürür. –

+0

"String [] suits =', –