2016-09-03 3 views
1

2次元配列を持つJavaのカードのデッキを作成し、私はデッキを作成して、例えば、それぞれにスイートを適用しようとしています

cardValue[0][1]をしてcardValue[Spade][1]

が、私ドンに変換それを変換する方法を理解していない。私は現在持っているもの:

 int cardValues[][]; 
     for(int a = 0; a <= 3; a++) 
     { 
      for(int b = 0; b <= 12; b++) 
      { 
       cardValues[][] += cardValues[a][b]; 
       if(cardValues[a][b] == cardValues[a][0]) 
       { 
        cardValues[a][b] = 5; 
       } 
       else if(cardValues[a][b] > cardValues[a][0] || cardValues[a][b] < cardValues[a][10]) 
       { 
        cardValues[a][b] = 1; 
       } 
       else if(cardValues[a][b] == cardValues[a][10]) 
       { 
        cardValues[a][b] = 2; 
       } 
       else if(cardValues[a][b] == cardValues[a][11]) 
       { 
        cardValues[a][b] = 3; 
       } 
       else if(cardValues[a][b] == cardValues[a][12]) 
       { 
        cardValues[a][b] = 4; 
       } 
      } 
     } 

0,1,2,3をどのようにしてスペード、ダイヤモンド、クラブ、ハートに変換するのか分かりません。

+0

スーツを管理するためにEnumerableクラスを作成します... – RicardoVallejo

+0

intの代わりにStringに変換し、特定の値と等しい場合はその文字列と等しくなるように変換する方が良いでしょうか?cardValues [ "Spade"] ["10"] – Dylan

+0

Humこの場合、文字列は最良のアイデアではないと思います...あなたは数字を保持し、最後にqスイッチケースで必要なものを行うことができます。または列挙型にすることができます。ここでは、必要なものと、なぜそれを使うべきかについての良いリファレンスがあります。https://howtoprogramwithjava.com/enums/ – RicardoVallejo

答えて

2

私はそのようなものだろう:

Suit.java

public enum Suit { 
    SPADES, DIAMONDS, CLUBS, HEARTS 
} 

Card.java

public class Card { 

    private Suit suit; 
    private String value; 

    public Card(Suit suit, String value) { 
     this.suit = suit; 
     this.value = value; 
    } 

    public Suit getSuit() { 
     return suit; 
    } 
    public void setSuit(Suit suit) { 
     this.suit = suit; 
    } 
    public String getValue() { 
     return value; 
    } 
    public void setValue(String value) { 
     this.value = value; 
    } 

} 

Main.java

を0
public class Main { 

    public static void main(String[] args) { 

     String[] values = new String[]{"K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3", "2", "A"}; 

     Card[] deck = new Card[52]; 

     int i = 0; 
     for (Suit suit : Suit.values()) { 
      for (String value : values) { 
       deck[i++] = new Card(suit, value); 
      } 
     } 

     for (Card card : deck) { 
      System.out.println(card.getValue() + " of " + card.getSuit()); 
     } 

    } 

} 
+0

これはどういう仕組みか、わかりました。私はこれでデッキ全体を印刷したいのですが、どうすればそれを設定できますか? – Dylan

+0

for(カードカード:デッキ){ System.out.println(card.getValue()+ of "+ card.getSuit()); } – Daniel

+0

これで助けてくれてありがとうございます。 – Dylan

関連する問題