初始化一副牌时如何使用toString方法

时间:2013-12-04 18:52:55

标签: java arrays

我被分配了一个项目,我必须创建一个带有Card类的视频扑克程序来初始化套牌。我一直在努力做到这一点,我想出了

import java.util.Random;
import java.util.Arrays;
public class Cards
{
    private int number, suit;
    /**
     * Constructor for objects of class Cards
     */
    public Cards()
    {
        int[] numbers = new int[12];
        int[] suits = new int[3];
    }
    public int getSuit(int[] suits)
    {
        int randSuit;
        Random gen = new Random();        
        randSuit = suits[gen.nextInt(4)];
        return randSuit;
    }
    public int getNumber(int[] numbers)
    {
        int randNumber;
        Random gen2 = new Random();
        randNumber = numbers[gen2.nextInt(13)];
        return randNumber;
    }
    public String toString()
    {
        return numbers[number] + " of " + suits[suit];
    }
}

我已经看过其他人如何做到这一点的例子,但是我尝试使用数组中的随机#generator来创建我自己的版本,随机选择一个值并将所述值分配给一个套装/数字。我似乎无法弄清楚要放入toString方法的内容,因为我真的不知道如何从他们的数组中拉出随机生成的卡的结果并将它们转换为字符串来说(数字)+“of”+(套装)

任何建议都将不胜感激。我认为只是创建一个字符串数组并将其中的单词拉出来会更容易但是我需要使用int值,即便如此我也不知道如何提取数组值/字符串。

1 个答案:

答案 0 :(得分:1)

我可能会实现两个辅助方法,如此

private static String getSuit(int suit) 
{
  switch (suit) {
  case 0: return "Spades";
  case 1: return "Clubs";
  case 2: return "Diamonds";
  }
  return "Hearts";
}

private static String getCard(int card) 
{
  switch (card) {
  case 1: return "Ace";
  case 11: return "Jack";
  case 12: return "Queen";
  case 13: return "King"; // Assuming you want a 10...
  }
  return String.valueOf(card);
}

然后我会在toString()方法中调用它们,就像这样

public String toString()
{
    return getCard(numbers[number]) + " of " + getSuit(suits[suit]);
}