所以我最近一直在使用最新版本的 Bluej 学习 java,因为有人告诉我这将是一个很好的起点。我已经完成了通常的 Hello World,学习如何获取和设置、数组和数组列表等...我决定尝试一下简单的纸牌游戏,我相信它实际上是二十一点,但不要引用我的话。无论如何,我真的不知道从哪里开始,我得到了一个模板,但在实际尝试弄清楚它的某些部分时遇到了麻烦,希望有人可以帮助我,代码如下:
public class Deck()
{
private int card;
private int suit;
public Deck()
{
shuffle();
}
public void shuffle()
{
double rand = (int)(Math.random()*(card+1)
// Bare in mind I dont even think this is correct
// Need to generate a double value from 0.0 up to but not including 1.0
// Apparently to produce value in a range of 1 to 6
// I need to apply a scaling factor of 6 and add 1 to the result
}
public int getCard()
{
return card;
}
public int getSuit()
{
return suit;
}
那么我的代码正确吗?我不希望它成为二十一点的复杂版本,如果确实是这样的话,从它的包里有 52 张牌的事实来看,我认为每手 4 张牌或类似的东西很可能,因为我已经做了一些我也研究过其他人的成果,但我真的不知道我要做什么!非常感谢任何帮助!因为我真的很想填补空白!
最佳答案
一些错误:
类体:其公共(public)类 Deck{} 而不是公共(public)类 Deck(){}。 () 只能用于方法或构造函数,不能用于类。
您声明了字段牌和花色,但您从未将它们实际设置为任何内容。
double rand:您将变量 rand 声明为 double,但稍后您尝试为其分配 int
提示:
要生成随机值,请尝试“Random”类。该类有一个 nextInt(n) 方法,可以生成 0 到 n-1 之间的数字。它比 Math.random() 更容易理解,也更简洁
尝试创建一个额外的类“Card”,其中包含代表卡号和套件的数字。
如果用数组或 ArrayList 来表示牌组中的牌会更容易。最后一个可以在 Collections.shuffle() 方法中使用。这样您就不必涉足 Random 或 Math.random()。
关于java - bluej 中的纸牌游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21226043/