基本實現功能
//PokeGame類 package?com.bae; import?java.util.ArrayList; import?java.util.Collections; import?java.util.List; import?java.util.Scanner; public?class?PokeGame?{ List<Player>?player; List<Card>?cards; Player?p1;????//玩家 Player?p2; Card?p1max;???//玩家1最大的牌????? Card?p2max;??? Card?p1min;??? Card?p2min;???//玩家2最小的牌 //創建撲克牌數組 ???? String[]?CardType=new?String[]?{"方塊","梅花","紅桃","黑桃"}; ???? String[]?CardNum=new?String[]?{"2","3","4","5","6","7","8","9","10","J","Q","K","A"}; ???? public?void?PokeGame(){ this.player?=?new?ArrayList<Player>(); this.cards?=?new?ArrayList<Card>(); } ???? //創建撲克牌并打印 public?void?cardShow(){ System.out.println("########創建撲克牌########"); for(int?i=0;i<13;i++)?{???????????? for(int?j=0;j<4;j++)?{ ?????????????cards.add(new?Card(CardType[j],CardNum[i],i*10+j)); }??????? } //遍歷打印撲克牌 System.out.println("########撲克牌創建成功########"); ???? System.out.print("撲克牌為:"); ???? for(Card?c:cards){ ???? System.out.print(c.cardType+c.cardNum+","); ???? } System.out.println("共52張牌"); } //洗牌 public?void?washCard(){ System.out.println("########開始洗牌########"); Collections.shuffle(cards); System.out.println("正在努力地洗洗洗洗,請等待"); System.out.println("########結束洗牌########"); } //創建玩家 public?void?Players()?{???? ? //創建一個Scanner對象,用來獲取輸入的玩家ID和姓名 Scanner?console?=?new?Scanner(System.in); int?rept?=0; int?i=0; while(i<2){ System.out.println("請輸入玩家的ID:"); String?ID?=?null; if(console.hasNextInt()){ ID?=?console.next(); for(int?j=0;j<player.size();j++){ Player?pl?=?player.get(j); if(ID.equals(pl.id)){ rept?=1; System.out.println("id"+pl.id+"重復"); }else?rept=0; } //rept為0則未被占用 if(rept==0){ //提示輸入玩家姓名 System.out.println("請輸入玩家姓名:"); String?name?=?console.next(); //創建新的玩家對象 Player?newPlayer?=?new?Player(ID,?name); //通過調用player的add方法,添加ID-玩家 player.add(newPlayer); i++; ???????????? }else{ System.out.println("該玩家ID已被占用"); ???????????? } }else{ System.out.println("請輸入整數類型的ID!請重新輸入!"); console.next(); } } } //開始游戲 public?void?startGame(){ //開始發牌 System.out.println("########開始發牌########");???????? p1=?player.get(0);???????? p2=?player.get(1); p1.handCard.add(cards.get(0)); System.out.println("————————————玩家:"+p1.name+"————————拿牌————————————"); p2.handCard.add(cards.get(1)); System.out.println("————————————玩家:"+p2.name+"————————拿牌————————————"); p1.handCard.add(cards.get(2)); System.out.println("————————————玩家:"+p1.name+"————————拿牌————————————"); p2.handCard.add(cards.get(3)); System.out.println("————————————玩家:"+p2.name+"————————拿牌————————————"); System.out.println("########發牌結束########"); ???????? ????????//開始游戲 ????????System.out.println("########開始游戲########"); ????????Collections.sort(p1.handCard);//對集合handCard進行排序 ????????Collections.sort(p2.handCard); ????????p1max?=?p1.handCard.get(1); ????????p2max?=?p2.handCard.get(1); ????????System.out.println(p1.name+"最大的手牌:"+p1max.cardType+p1max.cardNum);??? ????????//輸出玩家1的最大手牌 ????????System.out.println(p2.name+"最大的手牌:"+p2max.cardType+p2max.cardNum);??? ????????//輸出玩家2的最大手牌 ????????if(p1max.rank>p2max.rank){?? ????????System.out.println("————————————!?。。⊥婕?+p1.name+"獲勝?。。?!————————————"); ????????} ????????else{ ??????????System.out.println("————————————!?。?!玩家"+p2.name+"獲勝!?。?!————————————");?? ??????????} ????????//輸出玩家的手牌 ????????System.out.println("########玩家各自的手牌########"); ????????p1min?=?p1.handCard.get(0); ????????p2min?=?p2.handCard.get(0); ????????System.out.println(p1.name+":"+p1max.cardType+p1max.cardNum+","+p1min.cardType+p1min.cardNum); ????????System.out.println(p2.name+":"+p2max.cardType+p2max.cardNum+","+p2min.cardType+p2min.cardNum); ???? ????????System.out.println("————————————游戲結束————————————"); }? public?static?void?main(String[]?args){ PokeGame?pg?=?new?PokeGame(); pg.PokeGame(); pg.cardShow(); pg.washCard(); pg.Players(); pg.startGame(); } }
//Card類 package?com.bae; public?class?Card?implements?Comparable<Card>{ String?cardType; String?cardNum; int?rank?; public??Card(String?cardType,String?cardNum,int?rank){ this.cardType?=?cardType; this.cardNum?=?cardNum; this.rank?=?rank; } ???? public?Card(){ } ?? @Override public?int?compareTo(Card?o)?{ ???? return?this.rank-o.rank;?????? //比較rank值的大小 } }
//Player類 package?com.bae; import?java.util.ArrayList; import?java.util.List; public?class?Player?{ String?id; String?name; List<Card>?handCard; ????public??Player(String?id,String?name){ this.id?=?id; this.name?=?name; handCard?=?new?ArrayList<Card>(); ????} ????public?Player(){ ????} }
怎么判斷輸入的玩家ID不要是負數呢
原本不會判斷牌大小,參考了qq_冰檸檬_3的作業中,設置rank值!
運行結果:
2018-11-15
如果輸入的值小于0,可以友好提示下ID不能為負數,并且continue一下