3

我试图弄清楚如何通过这个但实际上正在工作。恐怕我会得到误报。

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

2 回答 2

1
Card[] pair= new Card[5];

您尚未初始化对数组的元素,因此实际上您正在将参数卡与 null 进行比较。您正在使用 == 比较卡片的 Plua,它检查卡片是否完全相同,这是不正确的。

于 2011-04-21T03:54:14.100 回答
1

要么使用,要么只是阅读和学习,那里有许多扑克库之一。这里有一个很好的列表:http: //www.codingthewheel.com/archives/poker-hand-evaluator-roundup

于 2011-04-21T04:32:09.540 回答