当前位置:首页 » 编程语言 » java同花顺

java同花顺

发布时间: 2024-11-22 04:56:45

Ⅰ 用java如何判断扑克牌同花顺

扑克牌有两个属性,花色和牌面大小,可以分别比较花色和牌面大小是否递增或递减来确定是不是同花顺.但是由于扑克牌会有JQKA,所以牌面大小最好以数组或者字符串的方式实现,通过比较下标来比较大小,以下是大概的代码

publicclassPuKe{
privateStringcolor;
privateStringnum;
publicStringgetColor(){
returncolor;
}
publicvoidsetColor(Stringcolor){
this.color=color;
}
publicStringgetNum(){
returnnum;
}
publicvoidsetNum(Stringnum){
this.num=num;
}

publicPuKe(Stringcolor,Stringnum){
super();
this.color=color;
this.num=num;
}
publicstaticvoidmain(String[]args){
List<PuKe>card=newArrayList<PuKe>();
card.add(newPuKe("black","2"));
card.add(newPuKe("black","3"));
card.add(newPuKe("black","4"));
card.add(newPuKe("black","5"));
card.add(newPuKe("black","6"));
//这里因为10是两位数且牌面里面用不到1,所以直接用1代替10
Stringcheck="234567891JQKA";
booleanflage=true;
//自定义比较器,用num在check里的下标大小作为比较依据排序
Collections.sort(card,newComparator<Object>(){
@Override
publicintcompare(Objecto1,Objecto2){
PuKeer1=(PuKe)o1;
PuKeer2=(PuKe)o2;
Integerorg1=(int)(er1.getNum()==null?0.0:check.indexOf(er1.getNum()));
Integerorg2=(int)(er1.getNum()==null?0.0:check.indexOf(er2.getNum()));
returnorg1.compareTo(org2);
}
});
for(inti=0;i<card.size()-1;i++){
//遍历所有的牌,如果颜色不一样直接跳出循环,不是同花顺
if(!card.get(i).getColor().equals(card.get(i+1).getColor())){
flage=false;
break;
}
//如果上一张减去下一张的差值不是1,说明牌面不是顺子,也不是同花顺,跳出循环
if((int)check.indexOf(card.get(i+1).getNum())-(int)check.indexOf(card.get(i).getNum())!=1){
flage=false;
break;
}
}
if(flage){
System.out.println("牌面是同花顺");
}else{
System.out.println("牌面不是同花顺");
}
}
}

不过这种方法唯一不好的地方是check中不能直接用10,将来展示的时候需要判定,展示的是1时直接改成10.

其实实现方法很多,我这么写是因为最近在复习,这么写用到的知识点相对会多一点.

热点内容
淘宝图片缓存怎么关闭 发布:2025-08-21 09:51:31 浏览:149
访问学者出国手续 发布:2025-08-21 09:51:26 浏览:365
91资源解压 发布:2025-08-21 09:42:14 浏览:415
创新科存储技术 发布:2025-08-21 09:42:12 浏览:891
我的世界十三区服务器地址 发布:2025-08-21 09:41:28 浏览:432
编程语言排行榜2016 发布:2025-08-21 09:31:33 浏览:295
编程教学广告 发布:2025-08-21 09:28:24 浏览:173
安卓手机用哪个软件编辑视频 发布:2025-08-21 09:25:02 浏览:577
迈腾最低配有哪些值得选装的配置 发布:2025-08-21 09:14:04 浏览:836
php求职 发布:2025-08-21 09:14:03 浏览:490