我想创建一个代码来识别我的手牌是否具有相同的牌面
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。意思是面是相同的。如果它是假的,它将返回假。
答案 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;
}