2012-05-18 69 views
1

我有一個方法確定一個同花,只是想一些意見。它通過撲克手陣列進行查看,比較套裝,並在每次卡匹配時計數,如果是4,則返回true。有沒有更有效的方法來做到這一點?撲克手評估者

public boolean isFlush(PlayingCard[] hand) 
    { 
     int suitCounter = 0; 

     for(int i = 0; i < 1 ; i++) 
     { 
      for(int j = 1 ; j < hand.length ; j++) 
      { 
       if(hand[i].getSuit() == hand[j].getSuit()) 
        suitCounter++; 
      } 
     } 

     return (suitCounter == 4); 
    } 
+1

爲什麼你需要''for'循環,它只運行一次,'i == 0'?另外,你的撲克手牌有5張牌,還是隻有4張? –

+4

這屬於codereview。 Stackoverflow用於解決已知問題。 – Dave

+1

在http://codereview.stackexchange.com提問您的問題 – Jeremy

回答

2
public boolean isFlush(PlayingCard[] hand) { 
    Suit s = hand[0].getSuit(); 

    for(PlayingCard c : hand) 
    if(c.getSuit() != s) 
     return false; 

    return true; 
} 

你不需要算什麼,只是返回false如果事情不匹配。