當前位置:首頁 » 編程語言 » 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.

其實實現方法很多,我這么寫是因為最近在復習,這么寫用到的知識點相對會多一點.

熱點內容
安卓怎麼登錄tiktok不用root 發布:2024-11-22 09:33:20 瀏覽:718
空調壓縮機進水怎麼辦 發布:2024-11-22 09:30:58 瀏覽:846
安卓第三人稱視野80和90哪個好 發布:2024-11-22 09:10:28 瀏覽:48
php判斷是否為url 發布:2024-11-22 09:03:26 瀏覽:978
ceph源碼下載 發布:2024-11-22 08:53:57 瀏覽:415
車載導航工廠配置文件如何清除 發布:2024-11-22 08:51:13 瀏覽:268
蘋果藍牙耳機怎麼連接安卓手機 發布:2024-11-22 08:49:53 瀏覽:291
linux顯示文件大小 發布:2024-11-22 08:38:38 瀏覽:538
伺服器爆破是什麼 發布:2024-11-22 08:35:30 瀏覽:289
終極雲伺服器搭建 發布:2024-11-22 08:33:38 瀏覽:37