在bluej的纸牌游戏

时间:2014-01-20 04:00:38

标签: java random arraylist bluej

所以我最近一直在使用最新版本的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张牌或类似的东西很可能我已经做了一些研究也看看其他人产生了什么,但我真的不知道我要去哪一个!非常感谢任何帮助!因为我真的想填补空白!

1 个答案:

答案 0 :(得分:1)

一些错误:

  • 类主体:它的公共类Deck {}而不是公共类Deck(){}。仅对方法或构造函数使用(),而不是对类使用。

  • 您声明了字段卡和套装,但您实际上从未将它们设置为任何内容。

  • double rand:你将变量rand声明为double,但是稍后你尝试为它分配一个int

提示:

  • 用于生成随机值,请尝试“随机”类。该类有一个nextInt(n)方法,可以生成0到n-1之间的数字。它比Math.random()

  • 更容易理解,也更清晰
  • 尝试制作一个额外的“卡”,其中包含代表卡号和套件的数字。

  • 如果您在数组或ArrayList中表示卡片中的卡片会更容易。最后一个可以在Collections.shuffle()方法中使用。这样您就不必使用Random或Math.random()。