我正在制作一个扑克手代码,用于查找手中的各种扑克牌。我在实施每种方法后正在写测试。Java PokerHand方法
我写了isFlush()代码,它测试手是否齐平。
public boolean isFlush()
{
for (int i = 0; i < 4; i++)
{
if (cards.get(i).getSuit() == cards.get(i + 1).getSuit())
{
return true;
}
}
return false;
}
这是相应的测试,其成功构建,但测试实际上失败。它说预计会失败,但这是事实。我在代码中做了什么错误,但没有正确测试刷新?
@Test public void testIsFlush()
{
pokerHand.add(aceClubs);
pokerHand.add(kingSpades);
pokerHand.add(threeClubs);
pokerHand.add(fourClubs);
pokerHand.add(fiveClubs);
assertEquals(false, pokerHand.isFlush());
}
getSuit()返回什么样的值?此外,只要两张相邻的牌是相同的花色,您的isFlush()函数就会返回true。 – djebeeb
它返回“C,D,H,S”一个字符串,我如何让它检查所有5张牌? @djebeeb – soph16578
您的真/假条件是落后的:您应该尽早在任何不匹配情况下返回false,并且只有在循环结束时才返回true。 –