2012-05-18 6 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

왜 필요합니까 단지'내가 == 0 '으로, 한 번 실행 외부'for' 루프, 그? 또한 포커 핸드에 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를 반환, 아무것도 계산 할 필요가 없습니다.

관련 문제