首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将数组中的数字相加,以便输出较高的分数

如何将数组中的数字相加,以便输出较高的分数
EN

Stack Overflow用户
提问于 2012-06-22 04:46:11
回答 3查看 97关注 0票数 0

我需要从13张牌中找出用户发牌的等级总和。

这是在我的类card.java中,它以字符串的形式返回卡片的值,然后以字符串的形式返回花色,最后以整数的形式返回排名。

代码语言:javascript
复制
public  String toString(){

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

    return  s;

}

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

代码语言:javascript
复制
private void doButton1Stuff(){
    //textArea.append("\nButton 1 Clicked");
    textArea.setText("");
    for(int i = 0; i<13; i++){
    textArea.append(deck.getNextCard().toString()+"\n");
    }

一切都很好,我只需要找出一种方法,将所有的等级加在一起,从13张牌的用户,并输出为他们的分数。

代码语言:javascript
复制
public Card getNextCard(){
    //check for end of deck
        topCard++;
        if(topCard==53){
        topCard = 1;
        shuffle();
        }


    return cards[deck[topCard-1]];
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-22 04:51:42

你需要为你的rank变量设置一个访问器。

代码语言:javascript
复制
public int getRank() {
    return rank;
}

然后,您可以对某些集合中的每一张牌使用它(这里我假设是一个数组):

代码语言:javascript
复制
for(Card c: cards) {
    sum += c.getRank();
}

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

代码语言:javascript
复制
int sum = 0;
for(int i = 0; i<13; i++) {
    Card c = deck.getNextCard();
    textArea.append(c.toString()+"\n");
    sum += c.getRank();
}
票数 2
EN

Stack Overflow用户

发布于 2012-06-22 04:58:34

如果你不能从Card类中访问你的排名值,你可以像这样从它的toString()输出中读取它:

代码语言:javascript
复制
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,这样您就不必使用上面的代码。

票数 0
EN

Stack Overflow用户

发布于 2012-06-22 04:59:05

看起来你的"Card“类(我不能从你的代码中知道你给它命名了什么)有一个"rank”成员,我猜它是一个整数。所以我认为你遇到的问题是迭代。试试这个:

代码语言:javascript
复制
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);
}

这假设您的成员变量“排名”是可访问的(请参阅"public","protected","private")

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11146468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档