牌面用 1-13 表示
A,2,3,4,5 和 10,J,Q,K,A 都算顺子,但是K,A,2,3,4就不算
我是这么写的,其中hasPair是先前写的一个判断是否有对子的方法,getValue()返回牌面值
我自己写了几个Junit测试都通过了 但是网上的自动评分系统显示不通过
麻烦各位帮看看这个代码有什么问题
public static boolean hasStraight(Card [] cards) {
boolean flag = true;
int[] cardValue = new int[5];
for(int i = 0; i < 5 ;i++){
cardValue[i] = cards[i].getValue();
}
for (int i = 0; i < 5; i++){
for (int j = 0 ; j < 5 ; j++){
if (cardValue[i] == 13){
if (cardValue[j] == 1){
cardValue[j] = 14;
}
}
}
}
for (int i = 0; i < 5; i++){
for (int j = i + 1; j < 5; j++){
if (Math.abs(cardValue[i] - cardValue[j])> 4){
flag = false;
}
}
}
return flag && (!hasPair(cards));
}
java 判断5张牌是否为顺子
答案:2 悬赏:70 手机版
解决时间 2021-02-05 23:13
- 提问者网友:浩歌待明月
- 2021-02-05 02:43
最佳答案
- 五星知识达人网友:风格不统一
- 2021-02-05 04:02
程序没什么问题,但是规则似乎有问题,
A,2,3,4,5 不是顺子吧
A,2,3,4,5 不是顺子吧
全部回答
- 1楼网友:往事隔山水
- 2021-02-05 05:06
按点数,先大小排序、判断是不是第n+1张的点数是否n张的点数加1
~~~~~~~~~~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯