作业完成,欢迎讨论
不能超过两万字!! <- 评论继续贴
先贴截图:
附代码:
Card.java //扑克牌类
package com.playcards; /** * 扑克牌类<br> * 实现Comparable * * @author Cothrax * */ public class Card implements Comparable<Card> { private Integer type; private Integer num; /** * Crad的无参构造方法 */ public Card() { } /** * Card的有参构造方法 * * @param type * 指牌的花色:黑红梅方<br> * type = 1; ==> 方片<br> * type = 2; ==> 梅花<br> * type = 3; ==> 红心<br> * type = 4; ==> 黑桃<br> * @param num * 指牌的数值: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; } /** * 设置花色的方法 * @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; } /** * 设置牌的值的方法 * @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转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的无参构造方法 */ public Player() { } /** * Player的有参构造方法 * @param id 玩家id * @param name 玩家名称 */ public Player(int id, String name) { this.id = id; this.name = name; } /** * Player的有参构造方法 * @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; } /** * 设置玩家id * @param id 新的玩家id */ public void setId(int id) { this.id = id; } /** * 获取玩家名称 * @return 玩家名称 */ public String getName() { return name; } /** * 设置玩家名称 * @param name 新的玩家名称 */ public void setName(String name) { this.name = name; } /** * 获取玩家手中的牌 * @return 玩家手中的牌 */ public Card[] getCards() { return cards; } /** * 设置玩家手中的牌 * @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); } }
未完
不能超过两万字!! <- 评论继续贴