Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我试图生成一个随机的#,转换成字符串,然后根据转换后的字符串分配西装_Java - Fatal编程技术网

Java 我试图生成一个随机的#,转换成字符串,然后根据转换后的字符串分配西装

Java 我试图生成一个随机的#,转换成字符串,然后根据转换后的字符串分配西装,java,Java,需要生成随机的#,它随机表示“suit”;并使用“suitValues[]”将“suit”分配给suit属性。我不知道该怎么做 public class Card { int roll; String suit; String number; String[] numberValues = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A",}; String[] suitVa

需要生成随机的#,它随机表示“suit”;并使用“suitValues[]”将“suit”分配给suit属性。我不知道该怎么做

public class Card
{
    int roll;
    String suit;
    String number;
    String[] numberValues = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A",};
    String[] suitValues = {"Hearts", "Diamonds", "Clubs", "Spades"};

    public void createCard()
    {
        roll= 1 + (int)(Math.random() * ((4-1)+1));
        String random ="";
        random = Integer.toString(roll);
    }   
}

生成“卡片”的一种常见方法是选择一个介于0和51之间的随机数,然后将套装计算为
number%4
,并将等级计算为
number/4

比如:

Random rand = new Random();
int card = rand.nextInt(52);
String suit = suitValues[card % 4];
String rank = numberValues[card / 4];

请注意,此方法适用于生成单个随机卡。如果你想生成一手牌,或者发一副牌,随机“洗牌”一副完整的牌会简单得多,因为这样可以确保你不会多次“发”同一张牌。不过,确定发了哪张牌仍然可以使用上述方法。

生成“牌”的常用方法是选择一个0到51之间的随机数,然后将牌数计算为
数字%4
,排名为
数字/4

比如:

Random rand = new Random();
int card = rand.nextInt(52);
String suit = suitValues[card % 4];
String rank = numberValues[card / 4];

请注意,此方法适用于生成单个随机卡。如果你想生成一手牌,或者发一副牌,随机“洗牌”一副完整的牌会简单得多,因为这样可以确保你不会多次“发”同一张牌。不过,确定哪张牌已经发了,仍然可以使用上述方法。

在为纸牌游戏建模时,通常会创建一个虚拟牌组,将其洗牌,然后在发牌时抽取最上面的牌,等等


如果你建立了这个模组,你很容易从中抽取一张“随机”牌。

在纸牌游戏建模时,通常会创建一个虚拟牌组,洗牌,然后在交易时抽取最上面的牌


如果你构建了这个模块,那么也很容易从中抽取一张“随机”卡片。

((4-1)+1)
,真的吗?这是
枚举的经典用例。@EvertonAgner@EvertonAgner这可能是因为从
Math.random()
中获取整数的公式是
(Math.random()*(max-min)+min)
。至少这是我的猜测。
+1
在语句的开头:
roll=1+(int)(Math.random()*((4-1)+1))
((4-1)+1)
,真的吗?顺便说一句,这是
枚举
的一个经典用例。@EvertonAgner@EvertonAgner这很可能是因为从
Math.random()
获取整数的公式是
(Math.random()*(max-min)+min)
。至少这是我的猜测。
+1
在语句的开头:
roll=1+(int)(Math.random()*((4-1)+1))