如何告诉我的代码它有" Flush"?

时间:2018-02-04 10:30:04

标签: java

我想创建一个代码来识别我的手牌是否具有相同的牌面

public static boolean sameFace(String hand) {

hand = "s9s7s2sQsK";
char f = hand.charAt(0);

if( hand.charAt(0)==hand.charAt(2) && hand.charAt(0)==hand.charAt(4) 
&& hand.charAt(0)==hand.charAt(6) && hand.charAt(0)==hand.charAt(8));

return (hand.charAt(0) == hand.charAt(2) && hand.charAt(0) == hand.charAt(4) 
   && hand.charAt(0) == hand.charAt(6) && hand.charAt(0) == hand.charAt(8));

   sameface = hand;
   if (hand==true;)

   return (hand==true;) ; 

 } 

从上面可以看出,如果所有位置都是相同的字符,它就会成立(假,即使一个也不相同。)我怎样才能使用结果"返回&# 34;让我的程序识别出它有相同的面孔吗?如果可能的话。

据我所知,根据我的代码,它说"是的,位置x = y = z是相同的"我怎么能告诉它"因为它们是相同的,所以它们具有相同的卡面。"

我试着把它放在最后

   sameface = hand;
   if (hand==true;)
       return (hand==true;) ;  

基本上我试图说当"手" return语句为true,则samefaces为true。意思是面是相同的。如果它是假的,它将返回假。

1 个答案:

答案 0 :(得分:0)

  

基本上我试图说当“hand”return语句为真时,那么同样是真的。意思是面是相同的。如果它是假的,它将返回false。

只需返回表达式的结果即可:

public static boolean sameFace(String hand) {
    char f = hand.charAt(0);
    return f == hand.charAt(2) &&
           f == hand.charAt(4) &&
           f == hand.charAt(6) &&
           f == hand.charAt(8);
}

或者如果你想对不同数量的牌友好,请使用循环:

public static boolean sameFace(String hand) {
    char f = hand.charAt(0);
    for (int i = 2, len = hand.length(); i < len; i += 2) {
        if (f != hand.charAt(i)) {
            // Not a match
            return false;
        }
    }

    // All matched
    return true;
}