Java 我试图生成一个随机的#,转换成字符串,然后根据转换后的字符串分配西装
需要生成随机的#,它随机表示“suit”;并使用“suitValues[]”将“suit”分配给suit属性。我不知道该怎么做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
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))这是一个优雅的回答这是一个优雅的回答