我正在製作一個撲克手代碼,用於查找手中的各種撲克牌。我在實施每種方法後正在寫測試。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。 –