2012-06-21 32 views
0

我需要從13張用戶被髮送的牌中找到總和。如何添加數組中的數字,以便可以輸出高分

這是在我的班級 card.java 它返回卡的值作爲一個字符串,然後西裝作爲一個字符串,然後秩作爲一個整數。

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"); 
    } 

一切正常,我只是需要一種方法來所有的隊伍從13張牌的用戶處理和輸出加在一起弄清楚,他們的得分。

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


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

什麼對象不deck.getNextCard()返回?它有一個排名獲得者?字符串解析要麻煩得多... – TheZ

回答

2

您需要爲您的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(); 
} 
+0

爲什麼不只是在已經使用的卡片循環中進行添加,他使用它添加到文本區域? – TheZ

+0

無論哪裏都好;我只是在展示它如何被調用。 – Makoto

+0

謝謝我在我的代碼中有一個getRank,但不是聽起來像一個完整的noob,但我如何將它追加到我的textarea現在我只是想要它在顯示自己的所有卡下 –

0

如果你不能從卡類訪問你的等級值,你可以隨時從它的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); 

但是考慮添加一些getter到Card類,所以你不必使用上面的代碼。

0

它看起來像你的「卡」類(我不能告訴你從你的代碼中命名它)有一個「等級」成員,我猜是一個整數。所以我認爲你遇到的問題是迭代。試試這個:

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); 
} 

這是假設你的會員變種「等級」是可訪問的(見「公」,「保護」,「私人」)

+0

謝謝你這個工作! –

相關問題