package?com.imooc;import?java.util.ArrayList;import?java.util.Arrays;import?java.util.Collections;import?java.util.List;import?java.util.Scanner;public?class?Puke?implements?Comparable?{public?String?color;public?String?num;public?List<Puke>pukes;public?List<Player>players;?//玩家列表public?Puke(String?color,String?num){ this.color=color; this.num=num; this.pukes=new?ArrayList<Puke>(); this.players=new?ArrayList<Player>();}public?Puke(){ this.pukes=new?ArrayList<Puke>(); this.players=new?ArrayList<Player>();}/*?*創(chuàng)建撲克牌?*/public?void?creatPuke(){ String?color[]={"黑桃","紅桃","梅花","方片"}; String?num[]={"2","3","4","5","6","7","8","9","10","J","Q","K","A"}; for(int?i=0;i<4;i++){ for(int?j=0;j<13;j++){ Puke?puke=new?Puke(color[i],num[j]); pukes.add(puke); } }}/*?*?創(chuàng)建玩家?*/public?void?creatPlayer(){ Scanner?input=new?Scanner(System.in); for(int?i=1;i<=2;i++){ System.out.println("請玩家輸入ID:"); String?id=input.next(); System.out.println("請玩家輸入姓名:"); String?name=input.next(); Player?player=new?Player(id,name); players.add(player); } System.out.println("******一共有"+players.size()+"名玩家******"); for(Player?player:players){ System.out.println("*********玩家:"+player.name+"**********"); }}/*?*?洗牌?*/public?void?rushPuke(){ System.out.println("******洗**牌******"); Collections.shuffle(pukes);}/*?*?發(fā)牌?*/public?void?sendPuke(){ System.out.println("******洗牌*結(jié)束******"); System.out.println("********發(fā)**牌********"); Puke?a; for(int?i=0;i<4;i++){ a=pukes.get(i); if(i%2==0){ players.get(0).cards.add(a); System.out.println("*****玩家"+players.get(0).name+"拿牌*****"); }else{ players.get(1).cards.add(a); System.out.println("*****玩家"+players.get(1).name+"拿牌*****"); } }}/*?*?比較大小?*/public?void?comparable(){Puke?p1=players.get(0).cards.get(0);Puke?p2=players.get(0).cards.get(1);Puke?p3=players.get(0).cards.get(0);Puke?p4=players.get(0).cards.get(1);if((p1.compareTo(p3)>0)&&(p1.compareTo(p4)>0)){ System.out.println("游戲獲勝者是玩家:"+players.get(0).name);}if((p2.compareTo(p3)>0)&&(p2.compareTo(p4)>0)){ System.out.println("游戲獲勝者是玩家:"+players.get(0).name);}if((p3.compareTo(p1)>0)&&(p3.compareTo(p2)>0)){ System.out.println("游戲獲勝者是玩家:"+players.get(1).name);}if((p3.compareTo(p1)>0)&&(p4.compareTo(p2)>0)){ System.out.println("游戲獲勝者是玩家:"+players.get(1).name);}}public?int?compareTo(Puke?P2)?{ String?colorOrder?=?"黑桃,紅桃,梅花,方塊"; String?numOrder?=?"2,3,4,5,6,7,8,9,10,J,Q,K,A,"; int?x?=?numOrder.indexOf(this.getNum()); int?y?=?numOrder.indexOf(P2.getNum()); if(x<y)?{ return?-1; }else?if(x>y)?{ return?1; }else{ return?0; }}public?String?getNum()?{ //?TODO?Auto-generated?method?stub return?null;}/*?*?遍歷撲克?*/public?void?forPuke(){ System.out.println("52張撲克如下"); for(Puke?puke:pukes){ System.out.println(puke.color+":"+puke.num); }}public?static?void?main(String[]?args)?{ Puke?pk=new?Puke(); pk.creatPuke(); pk.forPuke(); pk.creatPlayer(); pk.rushPuke(); pk.sendPuke(); pk.comparable();}}
2020-10-13
Puke類在實現(xiàn)可比較接口時要指明要比較的對象的類
Public class Puke implements Comparable<Puke>{}
然后調(diào)整CompareTo函數(shù)就行了