亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我手牌的排序一直不成功,誰幫我看看問題出在哪兒

我手牌的排序一直不成功,誰幫我看看問題出在哪兒

qq_Abetterman_0 2018-03-16 17:33:31
Poker.java package?com.wdp; public?class?Poker?implements?Comparable<Poker>??{ @Override public?int?hashCode()?{ final?int?prime?=?31; int?result?=?1; result?=?prime?*?result?+?((ds?==?null)???0?:?ds.hashCode()); result?=?prime?*?result?+?((hs?==?null)???0?:?hs.hashCode()); return?result; } @Override public?boolean?equals(Object?obj)?{ if?(this?==?obj) return?true; if?(obj?==?null) return?false; if?(!(obj?instanceof?Poker)) return?false; Poker?other?=?(Poker)?obj; if?(ds?==?null)?{ if?(other.ds?!=?null) return?false; }?else?if?(!ds.equals(other.ds)) return?false; if?(hs?==?null)?{ if?(other.hs?!=?null) return?false; }?else?if?(!hs.equals(other.hs)) return?false; return?true; } //撲克牌屬性 private?String?hs; private?String?ds; //有參的構造方法 public?Poker(String?hs,String?ds)?{ this.hs?=?hs; this.ds?=?ds; } //setter、getter public?String?getHs()?{ return?hs; } public?void?setHs(String?hs)?{ this.hs?=?hs; } public?String?getDs()?{ return?ds; } public?void?setDs(String?ds)?{ this.ds?=?ds; } @Override public?int?compareTo(Poker?o)?{ //?TODO?Auto-generated?method?stub if(this.getValueOfDs()==o.getValueOfDs()){ return?this.getValueOfHs()-o.getValueOfHs(); }else?{ return?this.getValueOfDs()-o.getValueOfDs(); } } public?int?getValueOfHs()?{ String[]?hs?=?{"黑桃","紅桃","梅花","方片"}; for(int?i=0;i<hs.length;i++)?{ if(hs[i].equals(this.hs)); return?i; } return?-1; } public?int?getValueOfDs()?{ String[]?ds?=?{"2","3","4","5","6","7","8","9","10","J","Q","K","A"}; for(int?i=0;i<ds.length;i++)?{ if(ds[i].equals(this.ds)); return?i; } return?-1; } } PlayGame.java package?com.wdp; import?java.util.ArrayList; import?java.util.Collections; import?java.util.HashMap; import?java.util.HashSet; import?java.util.List; import?java.util.Map; import?java.util.Scanner; import?java.util.Set; public?class?PlayGame?{ String[]?hs?=?{"黑桃","紅桃","梅花","方片"}; String[]?ds?=?{"2","3","4","5","6","7","8","9","10","J","Q","K","A"}; List<Poker>?pokerList?=?new?ArrayList<Poker>(); Map<Integer,Player>?playerMap?=?new?HashMap<Integer,?Player>(); List<Poker>?pokerOnHande1?=?new?ArrayList<Poker>(); List<Poker>?pokerOnHande2?=?new?ArrayList<Poker>(); int[]?ID?=?new?int[10]?; /** ?*?創建撲克牌、打亂撲克牌 ?*/ public?void?CreatePoker(){ for(int?i=0;i<hs.length;i++)?{ for(int?j=0;j<ds.length;j++)?{ Poker?poker?=?new?Poker(hs[i],ds[j]); pokerList.add(poker); } } System.out.println("---------創建撲克牌完成----------"); System.out.println("已創建撲克牌如下:"); for?(Poker?p?:?pokerList)?{ System.out.println(p.getHs()+p.getDs()); } Collections.shuffle(pokerList); System.out.println("---------撲克牌已打亂-------------"); // for?(Poker?p?:?pokerList)?{ // System.out.println(p.getHs()+p.getDs()); // } } /** ?*?創建玩家 ?*/ public?void?CreatePlayer()?{ Scanner?sc?=?new?Scanner(System.in); System.out.println("----------創建玩家--------------"); for(int?i?=?0?;?i<2;i++)?{ System.out.println("請創建第"+(i+1)+"位玩家"); System.out.println("請輸入玩家ID:"); int?id?=?sc.nextInt(); System.out.println("請輸入玩家姓名:"); String?name?=?sc.next(); Player?player?=?new?Player(id,name); playerMap.put(id,?player); } System.out.println("創建玩家成功!"); System.out.println("---歡迎玩家:"+playerMap.get(1).getName()); System.out.println("---歡迎玩家:"+playerMap.get(2).getName()); } /** ?*?發牌 ?*/ public?void?PutPoker()?{ for(int?i?=?0;i<4;i++)?{ if(i%2==0)?{ pokerOnHande1.add(pokerList.get(i)); System.out.println("玩家:"+playerMap.get(1).getName()+"拿牌。"); }else{ pokerOnHande2.add(pokerList.get(i)); System.out.println("玩家:"+playerMap.get(2).getName()+"拿牌。"); } } playerMap.get(1).setPokerOnHande(pokerOnHande1); playerMap.get(2).setPokerOnHande(pokerOnHande2); System.out.println("-------發牌結束--------"); for?(Poker?pk2?:?playerMap.get(1).getPokerOnHande())?{ System.out.println("玩家:"+playerMap.get(1).getName()+"手中的牌是:"+ pk2.getHs()+pk2.getDs()); } for?(Poker?pk2?:?playerMap.get(2).getPokerOnHande())?{ System.out.println("玩家:"+playerMap.get(2).getName()+"手中的牌是:"+ pk2.getHs()+pk2.getDs()); } Collections.sort(playerMap.get(1).getPokerOnHande()); Collections.sort(playerMap.get(2).getPokerOnHande()); System.out.println("-------------排序后--------------"); for?(Poker?pk2?:?playerMap.get(1).getPokerOnHande())?{ System.out.println("玩家:"+playerMap.get(1).getName()+"手中的牌是:"+ pk2.getHs()+pk2.getDs()); } for?(Poker?pk2?:?playerMap.get(2).getPokerOnHande())?{ System.out.println("玩家:"+playerMap.get(2).getName()+"手中的牌是:"+ pk2.getHs()+pk2.getDs()); } } /** ?*?比較 ?*/ public?void?pokerComparable(){ System.out.println("-------------開始游戲----------------"); Collections.sort(pokerOnHande1); System.out.println("玩家:"+playerMap.get(1).getName()+"的最大手牌是:"+ pokerOnHande1.get(1).getHs()+pokerOnHande1.get(1).getDs()); Collections.sort(pokerOnHande2); System.out.println("玩家:"+playerMap.get(2).getName()+"的最大手牌是:"+ pokerOnHande2.get(1).getHs()+pokerOnHande2.get(1).getDs()); } public?static?void?main(String[]?args)?{ PlayGame?pg?=?new?PlayGame(); pg.CreatePoker(); pg.CreatePlayer(); pg.PutPoker(); // pg.pokerComparable(); } }
查看完整描述

1 回答

?
樹那邊

TA貢獻6條經驗 獲得超0個贊

playerMap.get(1)、playerMap.get(2)這個有問題,應該是0和1,也就是:playerMap.get(0),playerMap.get(1)

查看完整回答
反對 回復 2018-03-29
  • 1 回答
  • 0 關注
  • 960 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號