作業(yè)完成,歡迎討論
不能超過兩萬字?。?<-?評論繼續(xù)貼
先貼截圖:
附代碼:
Card.java //撲克牌類
package?com.playcards; /** ?*?撲克牌類<br> ?*?實現(xiàn)Comparable ?*? ?*?@author?Cothrax ?*? ?*/ public?class?Card?implements?Comparable<Card>?{ ????private?Integer?type; ????private?Integer?num; ????/** ?????*?Crad的無參構(gòu)造方法 ?????*/ ????public?Card()?{ ????} ????/** ?????*?Card的有參構(gòu)造方法 ?????*? ?????*?@param?type ?????*????????????指牌的花色:黑紅梅方<br> ?????*????????????type?=?1;?==>?方片<br> ?????*????????????type?=?2;?==>?梅花<br> ?????*????????????type?=?3;?==>?紅心<br> ?????*????????????type?=?4;?==>?黑桃<br> ?????*?@param?num ?????*????????????指牌的數(shù)值:1-13 ?????*?@exception?Card?type在1-4之間 ?????*?@exception?Card?num在1-13之間 ?????*/ ????public?Card(Integer?type,?Integer?num)?{ ????????if?(type?>?4?^?type?<?1)?{ ????????????throw?new?IllegalArgumentException("type在1-4之間"); ????????} ????????if?(num?<?1?^?num?>?13)?{ ????????????throw?new?IllegalArgumentException("num在1-13之間"); ????????} ????????this.type?=?type; ????????this.num?=?num; ????} ????/** ?????*?獲取花色的方法 ?????*?@return?花色 ?????*/ ????public?int?getType()?{ ????????return?type; ????} ????/** ?????*?設(shè)置花色的方法 ?????*?@param?type?新的花色 ?????*?@exception?Card?type在1-4之間 ?????*/ ????public?void?setType(int?type)?{ ????????if?(type?>?4?^?type?<?1)?{ ????????????throw?new?IllegalArgumentException("type在1-4之間"); ????????} ????????this.type?=?type; ????} ????/** ?????*?獲取牌的值的方法 ?????*?@return?牌的值 ?????*/ ????public?int?getNum()?{ ????????return?num; ????} ????/** ?????*?設(shè)置牌的值的方法 ?????*?@param?num?新的牌值 ?????*?@exception?Card?num在1-13之間 ?????*/ ????public?void?setNum(int?num)?{ ????????if?(num?<?1?^?num?>?13)?{ ????????????throw?new?IllegalArgumentException("num在1-13之間"); ????????} ????????this.num?=?num; ????} ????/** ?????*?重寫的hashCode方法 ?????*/ ????@Override ????public?int?hashCode()?{ ????????final?int?prime?=?31; ????????int?result?=?1; ????????result?=?prime?*?result?+?num; ????????result?=?prime?*?result?+?type; ????????return?result; ????} ????/** ?????*?重寫的equals方法 ?????*?@param?obj?與之比較的對象 ?????*/ ????@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?(num?!=?other.num) ????????????return?false; ????????if?(type?!=?other.type) ????????????return?false; ????????return?true; ????} ????/** ?????*?Card轉(zhuǎn)String方法 ?????*? ?????*?@return?牌字符串(類型+值) ?????*/ ????@Override ????public?String?toString()?{ ????????String?typeString?=?""; ????????switch?(type)?{ ????????case?1: ????????????typeString?=?"方片"; ????????????break; ????????case?2: ????????????typeString?=?"梅花"; ????????????break; ????????case?3: ????????????typeString?=?"紅心"; ????????????break; ????????case?4: ????????????typeString?=?"黑桃"; ????????????break; ????????default: ????????????break; ????????} ????????String?numString; ????????switch?(num)?{ ????????case?1: ????????????numString?=?"A"; ????????????break; ????????case?11: ????????????numString?=?"J"; ????????????break; ????????case?12: ????????????numString?=?"Q"; ????????????break; ????????case?13: ????????????numString?=?"K"; ????????????break; ????????default: ????????????numString?=?String.valueOf(num); ????????????break; ????????} ????????return?typeString?+?numString; ????} ????@Override ????public?int?compareTo(Card?arg0)?{ ????????//?TODO?Auto-generated?method?stub ????????if?(this.type?==?arg0.type)?{ ????????????return?this.num.compareTo(arg0.num); ????????}?else?{ ????????????return?this.type.compareTo(arg0.type); ????????} ????} }
Player.java //玩家類
package?com.playcards; import?java.util.Arrays; /** ?*?玩家類 ?*?@author?Cothrax ?* ?*/ public?class?Player?{ ????private?int?id; ????private?String?name; ????private?Card[]?cards; ???? ????/** ?????*?Player的無參構(gòu)造方法 ?????*/ ????public?Player()?{ ????} ????/** ?????*?Player的有參構(gòu)造方法 ?????*?@param?id?玩家id ?????*?@param?name?玩家名稱 ?????*/ ????public?Player(int?id,?String?name)?{ ????????this.id?=?id; ????????this.name?=?name; ????} ???? ????/** ?????*?Player的有參構(gòu)造方法 ?????*?@param?id?玩家id ?????*?@param?name?玩家名稱 ?????*?@param?cards?玩家手中的牌 ?????*? ?????*?@exception?Player?一個玩家手中只能有兩張牌! ?????*/ ????public?Player(int?id,?String?name,?Card[]?cards)?{ ????????this.id?=?id; ????????this.name?=?name; ????????if?(cards.length?!=?2)?{ ????????????throw?new?IllegalArgumentException("一個玩家手中只能有兩張牌!"); ????????} ????????this.cards?=?cards; ????} ????/** ?????*?獲取玩家id ?????*?@return?玩家id ?????*/ ????public?int?getId()?{ ????????return?id; ????} ????/** ?????*?設(shè)置玩家id ?????*?@param?id?新的玩家id ?????*/ ????public?void?setId(int?id)?{ ????????this.id?=?id; ????} ????/** ?????*?獲取玩家名稱 ?????*?@return?玩家名稱 ?????*/ ????public?String?getName()?{ ????????return?name; ????} ????/** ?????*?設(shè)置玩家名稱 ?????*?@param?name?新的玩家名稱 ?????*/ ????public?void?setName(String?name)?{ ????????this.name?=?name; ????} ????/** ?????*?獲取玩家手中的牌 ?????*?@return?玩家手中的牌 ?????*/ ????public?Card[]?getCards()?{ ????????return?cards; ????} ????/** ?????*?設(shè)置玩家手中的牌 ?????*?@param?cards?新的手牌 ?????*?@exception?Player?一個玩家手中只能有兩張牌! ?????*/ ????public?void?setCards(Card[]?cards)?{ ????????if?(cards.length?!=?2)?{ ????????????throw?new?IllegalArgumentException("一個玩家手中只能有兩張牌!"); ????????} ????????this.cards?=?cards; ????} ????/** ?????*?重寫的hashCode方法 ?????*/ ????@Override ????public?int?hashCode()?{ ????????final?int?prime?=?31; ????????int?result?=?1; ????????result?=?prime?*?result?+?Arrays.hashCode(cards); ????????result?=?prime?*?result?+?id; ????????result?=?prime?*?result?+?((name?==?null)???0?:?name.hashCode()); ????????return?result; ????} ????/** ?????*?重寫的eqauls方法 ?????*?@param?obj?與之比較的對象 ?????*/ ????@Override ????public?boolean?equals(Object?obj)?{ ????????if?(this?==?obj) ????????????return?true; ????????if?(obj?==?null) ????????????return?false; ????????if?(getClass()?!=?obj.getClass()) ????????????return?false; ????????Player?other?=?(Player)?obj; ????????if?(!Arrays.equals(cards,?other.cards)) ????????????return?false; ????????if?(id?!=?other.id) ????????????return?false; ????????if?(name?==?null)?{ ????????????if?(other.name?!=?null) ????????????????return?false; ????????}?else?if?(!name.equals(other.name)) ????????????return?false; ????????return?true; ????} ???? ????/** ?????*?返回玩家字符串的方法 ?????*?@return?玩家字符串(id+名稱+手牌) ?????*? ?????*/ ????@Override ????public?String?toString()?{ ????????return?id?+?"號玩家"?+?name?+?":"?+?Arrays.toString(cards); ????} ???? ???? ???? }
未完
不能超過兩萬字!! <-?評論繼續(xù)貼
2015-03-30
有錯誤啊??
2015-02-12
繼續(xù)貼...
Main.java //測試類
完畢。
2015-02-12
繼續(xù)貼
DoCards.java?//將創(chuàng)建牌、創(chuàng)建玩家、洗牌、發(fā)牌、玩牌方法放在一起
未完 ————?不能超過20000字