我在Java中获得了一项像War这样的纸牌游戏。我必须设置1-13的值来表示卡片并随机选择它们。我已经声明了我的变量并将它们设置为具有最大值,但我仍然得到远远超过13的值。我之前已经多次使用Math.random()
而没有任何问题。我还没有浓缩代码,可能有些膨胀的线条和其他线条不需要存在,但它不应该影响我的Math.random()
数字。非常感谢任何帮助!!
class Card {
public int cardNum;
public int cardSuit1;
public int cardSuit2;
public final int CARDS_IN_SUIT;
public Card()
{
this.CARDS_IN_SUIT = 13;
this.cardSuit1 = 4;
this.cardSuit2 =4;
}
public void setCardNum1(int card)
{
cardNum = card;
}
public int getCardNum1()
{
if ((cardNum > 13) || (cardNum < 1))
{
cardNum = (((int) (Math.random() * 100 % CARDS_IN_SUIT + 1)));
}
return cardNum;
}
public void setCardNum2(int card)
{
cardNum = card;
}
public int getCardNum2()
{
cardNum = (((int) (Math.random() * 100 % CARDS_IN_SUIT + 1)));
return cardNum;
}
/////////////////////////////////////////////// //////////////////////////
class DisplayCard
{
public static void main(String[] args)
{
final int CARDS_IN_SUIT = 13;
final int cardNum = (((int) (Math.random() * 100 % CARDS_IN_SUIT + 1)));
Card firstCard = new Card();
Card secondCard = new Card();
firstCard.setCardNum1(cardNum);
secondCard.setCardNum2(cardNum);