Java покер руки оценщик не работает - PullRequest
3 голосов
/ 21 апреля 2011

Я пытаюсь выяснить, как пройти это, но на самом деле работает. Боюсь, я получаю ложные срабатывания.

public static boolean hasPair(Card[] cards) {
     Card[] pair= new Card[5];
     for(int i=0; i<5; i++)
     {
       for(int j=i+1; j<5; j++)
       {
         if(pair[i].equals(cards[j]))
           return true;
       }
      }
    return false;

я обновился до этого. Это правильно или я снова не прав? Это сводит меня с ума, но я все еще пытаюсь, я просто не буду спать в течение следующих двух дней.

Мне тоже не разрешено использовать коллекции, так что вроде воняет. вот мой Junit

public void testhasPair(){

         Card[] pair= new Card[5];

                pair[0]=new Card(5,1);
                pair[1] = new Card(1,1);
                pair [2]=new Card(1,2);
                pair [3]=new Card(3,3);
                pair [4]=new Card(6,3);
            assertTrue(PokerHandEvaluator.hasPair(pair));

Ответы [ 2 ]

1 голос
/ 21 апреля 2011

Либо используйте, либо просто читайте и учитесь у одной из множества покерных библиотек.Вот хороший список: http://www.codingthewheel.com/archives/poker-hand-evaluator-roundup

1 голос
/ 21 апреля 2011
Card[] pair= new Card[5];

вы не инициализировали элементы массива пар, поэтому фактически вы сравниваете карты параметров с нулем.Plua, который вы используете == для сравнения карт, который проверяет, являются ли карты одной и той же картой, что не так.

...