【问题标题】:How to use toString method when initializing a deck of cards初始化一副纸牌时如何使用 toString 方法
【发布时间】:2013-12-04 18:52:55
【问题描述】:

我被分配了一个项目,我必须创建一个带有 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];
    }
}

我已经看过其他人关于如何执行此操作的示例,但我尝试使用数组中的随机 # 生成器来制作我自己的版本,以随机选择一个值并将所述值分配给西装/号码。我似乎无法弄清楚要在 toString 方法中放入什么,因为我真的不知道如何从它们的数组中提取随机生成的卡片的结果并将它们转换为字符串来表示 (Number) + " of " + (Suit)

任何建议将不胜感激。我在想创建一个字符串数组并从中提取单词会更容易,但我需要使用 int 值,即使那样我也不知道如何提取数组值/字符串。

【问题讨论】:

  • 这个int[] numbers = new int[12];是一个局部变量。
  • 可以使用两个枚举 (Enumeration)。一套用于西装,一套用于数字。
  • 我们还没有了解枚举,所以不确定我的教授是否愿意接受它。虽然谢谢你,但我会调查一下。至于 int[] numbers = new int[12] 是一个局部变量,我看不出有什么问题,我按照我们展示的方式创建数组:(
  • 在这种情况下,您可以使用switch(number) 语句或if-else if 语句字符串。
  • 你的数组不够大......初始化它们时的大小不是从零开始的。 Arrays

标签: java arrays


【解决方案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]);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 2011-07-12
    相关资源
    最近更新 更多