java - bluej 中的纸牌游戏

标签 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 张牌或类似的东西很可能,因为我已经做了一些我也研究过其他人的成果,但我真的不知道我要做什么!非常感谢任何帮助!因为我真的很想填补空白!

最佳答案

一些错误:

  • 类体:其公共(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/

相关文章:

java - 如何追加/添加存储在数组列表中的文本

java - 为什么 ArrayList 没有可变参数构造函数?

java - JSON 反序列化抛出异常 - 无法从 START_OBJECT token 中反序列化 java.util.ArrayList 的实例

javascript - 简化随机顺序的 jQuery 函数

c# - 类方法中的随机数生成器

random - 维基数据 SPARQL 接口(interface) : order by random

java - 如何使用 Hibernate 连接到 Oracle 12c PDB

java - 在 Spring Hibernate java 项目中使用 "Envers"审计表

java - 如何在maven多模块项目中构建依赖模块

java - HttpUrlConnection Cookie