【问题标题】:how to add numbers that are in an array so a highscore could be output如何添加数组中的数字以便输出高分
【发布时间】:2012-06-21 20:46:10
【问题描述】:

我需要从发给用户的 13 张牌中找出排名的总和。

这是我的课 卡片.java 它以字符串形式返回卡片的值,然后以字符串形式返回花色,然后以 int 形式返回等级。

public  String toString(){

String s = ("I am the " + rankString[rank-2] + " of " + suit + "(rank): " + rank);

    return  s;

}

这是在我的 CardFrame 类中。 CardFrame.java

private void doButton1Stuff(){
    //textArea.append("\nButton 1 Clicked");
    textArea.setText("");
    for(int i = 0; i<13; i++){
    textArea.append(deck.getNextCard().toString()+"\n");
    }

一切正常

public Card getNextCard(){
    //check for end of deck
        topCard++;
        if(topCard==53){
        topCard = 1;
        shuffle();
        }


    return cards[deck[topCard-1]];

【问题讨论】:

  • deck.getNextCard() 返回什么对象?它有排名获取器吗?字符串解析要麻烦得多……

标签: java


【解决方案1】:

您需要一个访问器来访问您的 rank 变量。

public int getRank() {
    return rank;
}

然后你可以将它用于某个集合中的每张卡片(这里我假设一个数组):

for(Card c: cards) {
    sum += c.getRank();
}

对于您的用例,可以在这里使用:

int sum = 0;
for(int i = 0; i<13; i++) {
    Card c = deck.getNextCard();
    textArea.append(c.toString()+"\n");
    sum += c.getRank();
}

【讨论】:

  • 为什么不在他用来附加到文本区域的已使用卡片循环中进行添加?
  • 哪里都好;我只是展示了如何调用它。
  • 谢谢你,我的代码中确实有一个 getRank,但听起来不像是一个完整的菜鸟,但我现在如何将它附加到我的文本区域,我只希望它在所有显示自己的卡片下面
  • 这对我来说听起来像是一个单独的问题。我自己也不是 100% 确定。
【解决方案2】:

如果您无法从 Card 类中访问您的排名值,您可以随时从其 toString() 输出中读取它,如下所示:

String cardToStringOutput = "I am the " + "rankString[rank-2]" + " of "
        + "suit" + "(rank): " + "11";
int rank=Integer.parseInt(cardToStringOutput.split(" ")[6]);
System.out.println("rank="+rank);

但是考虑在 Card 类中添加一些 getter,这样你就不必使用上面的代码了。

【讨论】:

    【解决方案3】:

    看起来您的“卡片”类(我无法从代码中分辨出您将其命名为什么)有一个“等级”成员,我猜它是一个整数。所以我认为你遇到的问题是迭代。试试这个:

    private void doButton1Stuff(){
        //textArea.append("\nButton 1 Clicked");
        textArea.setText("");
        int score = 0;
        for(int i = 0; i<13; i++){
            Card card = deck.getNextCard();
            score += card.rank
            textArea.append(card.toString()+"\n");
        }
        textArea.append("Score: ");
        textArea.append(score);
    }
    

    这假设您的成员变量“rank”是可访问的(参见“public”、“protected”、“private”)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-13
      • 1970-01-01
      相关资源
      最近更新 更多