Java纸牌游戏: Deck Class help needed

标签 java arrays oop class project

这是我关于 Stack Overflow 的第一个问题,如果我的问题中有新手错误,请原谅我,请随时纠正我,因为我计划在接下来的几个月里更多地使用这个网站。

无论如何,我是一名 12 年级的高中生,被困在我的一个家庭作业问题上。 所以基本上我们得到了一个创建 war 游戏(纸牌游戏)的项目,并且我们被要求每天做一小部分。到目前为止,一切都很好,直到今天,所以我想问大家一个问题。

项目内容如下:

卡片

  • 它有什么:
    • private int value:卡片的值
    • 私有(private)字符花色:花色
    • Private Boolean drawn:牌是否已经从牌组中抽出
  • 它的作用:
    • Public Card(int val, char s):创建一张值(value)为 val、花色为 s 的牌,并将绘制设置为 False
    • public int getValue():返回卡片的值
    • public char getSuit():返回一张牌的花色
    • Public Boolean isDrawn():返回一张牌是否被抽出
    • Public String toString():以“花色值”的形式返回描述牌的字符串

甲板

  • 它有什么:
    • private char[] suits = { ‘c’, ‘d’, ‘h’, ‘s’}:代表花色
    • public int numCards:一副牌中的卡片数量(传统上是 52 - 将其降低以进行测试!)
    • Private Card[] deck:存储为卡片数组的卡片组

到目前为止,我已经完成了所有工作。

  • 它的作用:
    • Public Deck():创建一副纸牌——值范围为 2-14,每种花色各一张
    • public card drawCard():从牌组中随机抽取一张尚未抽出的牌
    • Public String toString():为测试目的而设计

现在,在 Quynh 先生的帮助下,我已经完成了 Public deck 的步骤,但是我对应该如何创建 drawCard 方法感到困惑。这是我到目前为止所拥有的:

public Card drawnCard(){
        int randNum = (int) Math.random()*13+2;
    }

所以我知道上面的代码创建了一个介于 2 和 14 之间的随机数,但我如何使用它来抽取实体卡?比如我要输入什么才能让程序知道要抽一张牌?抱歉,我知道你可能觉得我现在每一步都在问你,但我真的迷路了,需要你的帮助!

我是编程方面的新手,因此如果这个问题对您来说太简单/新手,我深表歉意,但我真的需要您的帮助:)

感谢您的宝贵时间!

最佳答案

作为初学者,您的 Deck 构造函数应该类似于此

for(int i = 2; i <= 14; i++){
   for(int j = 0; j < suits.length; j++){
     Card card = new Card(i, suits[j]);
     card.isDrawn(false);
     //ADD CARD TO YOUR DECK HERE  
   }
}

至于 drawCard 功能,只需从 1-52 中随机抽取一个数字(假设您使用的是 52 张卡片组),然后从您的卡片组中抽取它并设置 .isDrawn(true)

关于Java纸牌游戏: Deck Class help needed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15047726/

相关文章:

java - Android 空 Activity 和空白 Activity

PHP OOP 访问其他类中的方法

java - 在枚举的构造函数中访问其他枚举

java - Hadoop:基于复合定界符拆分文本框类内容

jnlp 中的 Java Web Start 和数据库详细信息

php - Laravel 更新查询数组到字符串转换

arrays - 如何在vba函数中返回array()以在单元格中使用它数组公式(矩阵公式): for split texte in multi cells

javascript - 如何使用 javascript 填充数组中缺失的月份

java - 一个方法调用,多种可能的错误条件——如何在面向对象编程中管理它?

java - Gradle 无法从 Nexus 存储库获取依赖项?