Math.random()返回错误的值,无法找出原因

时间:2016-10-23 14:51:21

标签: java random

我在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);

0 个答案:

没有答案