这是我关于Stack Overflow的第一个问题,所以请原谅我,如果我在我的问题中有一个菜鸟错误,请随时纠正我,因为我打算在接下来的几个月内更多地使用这个网站。
无论如何,我是高中一年级的12年级学生,我一直在做我的一个功课问题。 所以基本上我们已经给了一个创建战争游戏(纸牌游戏)的项目,我们被要求每天做一小块。到目前为止,一切都一直很好,直到今天,因此我的问题是你们所有人。
以下是该项目的内容:
卡
甲板
到目前为止,我已经完成了所有事情。
现在我已经在Quynh先生的帮助下完成了公共套牌步骤但是我对如何创建drawCard方法感到困惑。这是我到目前为止所做的:
public Card drawnCard(){
int randNum = (int) Math.random()*13+2;
}
所以我知道上面的代码创建了一个介于2和14之间的随机数,但是如何使用它来绘制物理卡呢?喜欢我输入什么,以便程序知道画一张卡?对不起,我知道你现在可能觉得我要求你完成每一步,但我真的迷路了,需要你的帮助!
对于编程而言,我是新手,因此如果这个问题对你来说太简单/ noobie我很抱歉,但我真的需要你的帮助:)
感谢您的时间!
答案 0 :(得分:2)
作为初学者,您的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张牌),然后从您的Deck中绘制并设置.isDrawn(true)
答案 1 :(得分:0)
像这样......
public class Deck {
private Card[] cards = new Card[52];
private int index = -1;
public Deck() {
// build deck
for (int i=0; i<52; ++i) {
if (i<13) cards[i] = new Card('s',i+2);
else if (i<26) cards[i] = new Card('c',i-13+2);
else if (i<39) cards[i] = new Card('d',i-26+2);
else if (i<52) cards[i] = new Card('h',i-39+2);
}
// shuffle deck
Collections.shuffle(Arrays.asList(cards));
}
public Card drawCard() {
++index;
cards[index].drawn();
return cards[index];
}
}
class Card {
private char suit;
private int value;
private boolean drawn = false;
Card(char s, int v) {
suit = s;
value = v;
}
void drawn() { drawn = true; }
boolean isDrawn() { return drawn; }
}
答案 2 :(得分:-1)
您应该使用数组列表来更轻松地进行随机播放。由于这是家庭作业,我不会给你确切的代码,但是,
ArrayList<Card> deck=new ArrayList<Card>();
//add a loop with
{
Card card=new Card("initilize card here");
deck.add(card);
}
从长远来看,这应该让你开始并使其更容易。