Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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,我正在制作一个PlayingCard类和一个Dealer类,使用Fisher-Yates shuffle洗牌一副牌。不过,我遇到了一个障碍,不知道哪里出了错。我在Dealer类中遇到编译器错误“找不到符号:variable newDeck”。这是我的PlayingCard课程,首先: public class PlayingCard { public enum Suit { Hearts, Clubs, Diamonds, Spades } public enu

我正在制作一个PlayingCard类和一个Dealer类,使用Fisher-Yates shuffle洗牌一副牌。不过,我遇到了一个障碍,不知道哪里出了错。我在Dealer类中遇到编译器错误“找不到符号:variable newDeck”。这是我的PlayingCard课程,首先:

    public class PlayingCard
{
  public enum Suit
  {
    Hearts, Clubs, Diamonds, Spades
  }

  public enum Rank
  {
    Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King, Ace
  }

  public final Suit suit;
  public final Rank rank;

  public PlayingCard(Rank rank, Suit suit)
  {
    this.rank = rank;
    this.suit = suit;
  }

  public String toString()
  {
    return this.rank.toString() + " of " + this.suit.toString();
  }
}
这是我的Dealer类,在这里我得到了错误。我还试图让我的变量I accept number在1-10之间,对应于重复循环会发生多少次,但我认为我也没有正确地做到这一点

import java.util.Random;

public class Dealer
{
  private PlayingCard[] deck;

  public Dealer()
  {
    deck = openNewDeck();
  }

  public PlayingCard[] openNewDeck()
  {
    PlayingCard[] newDeck = new PlayingCard[52];

    int i = 0;

    for (PlayingCard.Suit s : PlayingCard.Suit.values())
    {

      for (PlayingCard.Rank r : PlayingCard.Rank.values())
      {

        newDeck[i] = new PlayingCard(r, s);

        i++;
      }
    }

    return newDeck;

  }

  public void shuffle(int i)
  {
    for (i = 0; i <= 10; i++)
    {
      int j = (int)(Math.random() * newDeck.length);
      int temp = newDeck[i];
      newDeck[i] = newDeck[j];
      newDeck[j] = temp;

      for (String p : newDeck)
      {
        System.out.println(p);
      }
    }
  }

  public String toString()
  {

  }

}
import java.util.Random;
公共类交易商
{
私人游戏卡[]牌组;
公共交易商()
{
deck=openNewDeck();
}
公共播放卡[]openNewDeck()
{
PlayingCard[]新牌组=新牌组[52];
int i=0;
对于(PlayingCard.Suit s:PlayingCard.Suit.values())
{
for(PlayingCard.Rank r:PlayingCard.Rank.values())
{
新牌组[i]=新的玩牌(r,s);
i++;
}
}
返回新甲板;
}
公共无效洗牌(int i)
{

对于(i=0;iInside
shuffle
他们没有被称为
newDeck
的变量。你想引用
这个.deck
或者只是
deck
来使用与
经销商
实例关联的字段。

Inside
shuffle
他们没有被称为
newDeck
的变量。你想引用
这个.deck
或just
deck
使用与
经销商
实例关联的字段。

newDeck
shuffle
中不在范围内。它只存在于
openNewDeck
方法中。您可能只想shuffle
deck
newDeck
shuffle
中不在范围内。它只存在t在
openNewDeck
方法中。您可能只想洗牌
deck