作业完成,欢迎讨论
不能超过两万字!! <- 评论继续贴
先贴截图:


附代码:
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);
}
}未完
不能超过两万字!! <- 评论继续贴
