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

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

撲克牌游戲出了問題,當比較兩個相同花色牌的時候,card類里的colornum變量的值不能被輸入,求大神解答?

撲克牌游戲出了問題,當比較兩個相同花色牌的時候,card類里的colornum變量的值不能被輸入,求大神解答?

慕粉3392422 2016-06-27 21:58:55
package?ifinal; import?java.util.ArrayList; public?class?player?{ int?id; String?name; ArrayList<card>?hand=new?ArrayList<card>(); public?player(){ } public??player(int?id,?String?name,card?hand){ this.id=id; this.name=name; this.hand.add(hand); } }package?ifinal; public?class?card?{ int?num; String?color; int?colornum; public?card(String?color,int?num){ this.color=color; this.num=num; if(this.color.equals("黑桃")){this.colornum=4;} if(this.color.equals("紅桃")){this.colornum=3;} if(this.color.equals("梅花")){this.colornum=2;} if(this.color.equals("方塊")){this.colornum=1;} } public?card(){ } public?card?compare(card?obj){ if(?this.num?>?obj.num){ return?this; } if(this.num<?obj.num){ return?obj; } if(this.num==obj.num){ if(this.colornum>obj.colornum){ return?this; } if(this.colornum<obj.colornum){ return?obj; } } return?null; } @Override public?int?hashCode()?{ final?int?prime?=?31; int?result?=?1; result?=?prime?*?result?+?((color?==?null)???0?:?color.hashCode()); result?=?prime?*?result?+?colornum; result?=?prime?*?result?+?num; return?result; } @Override public?boolean?equals(Object?obj)?{ if?(this?==?obj) return?true; if?(obj?==?null) return?false; if?(getClass()?!=?obj.getClass()) return?false; card?other?=?(card)?obj; if?(color?==?null)?{ if?(other.color?!=?null) return?false; }?else?if?(!color.equals(other.color)) return?false; if?(colornum?!=?other.colornum) return?false; if?(num?!=?other.num) return?false; return?true; } }package?ifinal; import?java.util.ArrayList; import?java.util.Collections; import?java.util.Scanner; public?class?initial?{ ArrayList<card>?possible=new?ArrayList<card>(); player?a=new?player(); player?b=new?player(); public?void?create(){ System.out.println("-------創建撲克牌--------"); for?(int?i=1;?i<=13;i++){ card?temp=new?card(); temp.color="黑桃"; temp.num=i; possible.add(temp); } for?(int?i=1;?i<=13;i++){ card?temp=new?card(); temp.color="梅花"; temp.num=i; possible.add(temp); } for?(int?i=1;?i<=13;i++){ card?temp=new?card(); temp.color="紅桃"; temp.num=i; possible.add(temp); } for?(int?i=1;?i<=13;i++){ card?temp=new?card(); temp.color="方塊"; temp.num=i; possible.add(temp); } System.out.println("-------撲克牌創建完成--------"); } public?void?test(){ for(int?i=0;?i<=possible.size()-1;i++){ System.out.print(possible.get(i).color+possible.get(i).num); } System.out.println(); System.out.println("共有"+possible.size()+"張牌"); } public?void?shuffle(){ System.out.println("------開始洗牌----------"); Collections.shuffle(possible); System.out.println("------洗牌結束----------"); } public?void?newplayer(){ Scanner?s=new?Scanner(System.in); System.out.println("請輸入玩家1的id:"); ?int?playerid1=?s.nextInt(); ?a.id=playerid1; ?System.out.println("請輸入玩家1的姓名:"); ?String?playername1=?s.next(); ?a.name=playername1; ?System.out.println("請輸入玩家2的id:"); ?int?playerid2=?s.nextInt(); ?b.id=playerid2; ?System.out.println("請輸入玩家2的姓名:"); ?String?playername2=?s.next(); ?b.name=playername2; } public?void?distribute(){ System.out.println("---------開始發牌-----------"); System.out.println("玩家---"+a.name+"---拿牌"); a.hand.add(possible.get(0)); System.out.println("玩家---"+b.name+"---拿牌"); b.hand.add(possible.get(1)); System.out.println("玩家---"+a.name+"---拿牌"); a.hand.add(possible.get(2)); System.out.println("玩家---"+b.name+"---拿牌"); b.hand.add(possible.get(3)); System.out.println("---------發牌結束-----------"); } public?void?start(){ System.out.println("---------開始游戲...-----------"); card?Ace1=a.hand.get(0).compare(a.hand.get(1)); card?Ace2=b.hand.get(0).compare(b.hand.get(1)); card?Ace=Ace1.compare(Ace2); System.out.println("玩家:"+a.name+"的最大手牌為:"+Ace1.color+Ace1.num); System.out.println("玩家:"+b.name+"的最大手牌為:"+Ace2.color+Ace2.num); if(Ace.equals(Ace1)){String?winner=a.name; System.out.println("-------玩家:"+winner+"獲勝------------");} if(Ace.equals(Ace2)){String?winner=b.name; System.out.println("-------玩家:"+winner+"獲勝------------");} } public?void?showhand(){ System.out.println("玩家各自手牌為:"); System.out.println(a.name+":["+a.hand.get(0).color+a.hand.get(0).num+a.hand.get(1).color+a.hand.get(1).num+"]"); System.out.println(b.name+":["+b.hand.get(0).color+b.hand.get(0).num+b.hand.get(1).color+b.hand.get(1).num+"]"); } public?static?void?main(String[]?args)?{ //?TODO?Auto-generated?method?stub initial?I=new?initial(); I.create(); I.test(); I.shuffle(); I.newplayer(); I.distribute(); I.showhand(); I.start(); } }
查看完整描述

1 回答

?
慕粉3392422

TA貢獻2條經驗 獲得超1個贊

解決了已經。。。。

查看完整回答
1 反對 回復 2016-06-28
  • 1 回答
  • 0 關注
  • 1187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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