【问题标题】:Creating a deck of cards in java with a two dimensional array用二维数组在java中创建一副纸牌
【发布时间】:2016-09-03 23:10:00
【问题描述】:

我正在尝试创建一个套牌并为每个套牌应用一套,例如:

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 转换为黑桃、方块、梅花、红心。

【问题讨论】:

  • 我会创建一个 Enumerable 类来管理西装......
  • 如果我将它转换为字符串而不是 int 并且如果它等于某个值,则等于该字符串,例如:cardValues["Spade"]["10"]
  • 嗯,我认为在这种情况下,字符串不是最好的主意...您仍然可以保留您的数字,并在最后使用 q switch case 做任何您需要的事情。或者您可以使用枚举,在这里您可以很好地参考您需要什么以及为什么要使用它们howtoprogramwithjava.com/enums

标签: java arrays


【解决方案1】:

我会这样做:

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

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());
        }

    }

}

【讨论】:

  • 好的,我想我明白这是如何工作的,最后一件事,如果我想让它用它打印整个甲板,我该如何设置它?
  • for (Card card : deck) { System.out.println(card.getValue() + " of " + card.getSuit()); }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-27
  • 2012-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多