Java中一副牌的洗牌方法
我正在制作一个PlayingCard类和一个Dealer类,使用Fisher-Yates shuffle洗牌一副牌。不过,我遇到了一个障碍,不知道哪里出了错。我在Dealer类中遇到编译器错误“找不到符号:variable newDeck”。这是我的PlayingCard课程,首先:Java中一副牌的洗牌方法,java,Java,我正在制作一个PlayingCard类和一个Dealer类,使用Fisher-Yates shuffle洗牌一副牌。不过,我遇到了一个障碍,不知道哪里出了错。我在Dealer类中遇到编译器错误“找不到符号:variable newDeck”。这是我的PlayingCard课程,首先: public class PlayingCard { public enum Suit { Hearts, Clubs, Diamonds, Spades } public enu
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;iInsideshuffle
他们没有被称为newDeck
的变量。你想引用这个.deck
或者只是deck
来使用与经销商
实例关联的字段。Insideshuffle
他们没有被称为newDeck
的变量。你想引用这个.deck
或justdeck
使用与经销商
实例关联的字段。newDeck
在shuffle
中不在范围内。它只存在于openNewDeck
方法中。您可能只想shuffledeck
newDeck
在shuffle
中不在范围内。它只存在t在openNewDeck
方法中。您可能只想洗牌deck