这是我关于 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/