1:card类
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Cards {
private List list = new ArrayList();
//创建一副扑克牌
public Cards(){
System.out.println("-----------------创建扑克牌------------------");
String[] color = {"黑桃", "红桃", "梅花", "方片"};
String[] number = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J","Q","K", "A"};
for(int i=0;i<color.length;i++)
for(int j=0;j<number.length;j++){
list.add(new Card(color[i], number[j]));
}
System.out.println("----------------扑克牌创建成功!---------------");
}
//获取一副扑克牌
public List<Card> getList() {
return list;
}
//洗牌(打乱)
public void shufCards(){
System.out.println("----------------开始洗牌------------------------");
Collections.shuffle(list);
System.out.println("----------------洗牌结束------------------------");
}
//展示一副扑克牌
public void showCards(){
System.out.print("当前的扑克牌为:");
System.out.print("[ ");
for(int i=0;i<list.size();i++){
System.out.print(list.get(i).getColor() + list.get(i).getNumber()+ " ");
}
System.out.println(" ]");
}
2:cardset类
package card;
import java.util.Comparator;
public class CardComparator implements Comparator {
@Override
public int compare(Card c1, Card c2) {
// 构建花色和牌值数组,通过比对,计算得到某张牌的价值(大小)
String[] color = {"方片", "梅花", "红桃", "黑桃"};
String[] number = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J","Q","K", "A"};
//由于比较规则是先比较牌值,如果相等再比较花色(黑红梅方),所以将牌值赋予较高的权值
int valueOfC1 = 0;
int valueOfC2 = 0;
for(int i=0;i<number.length;i++){
if(c1.getNumber().equals(number[i])) valueOfC1 += i*10;
if(c2.getNumber().equals(number[i])) valueOfC2 += i*10;
}
for(int i=0;i<color.length;i++){
if(c1.getColor().equals(color[i])) valueOfC1 += i;
if(c2.getColor().equals(color[i])) valueOfC2 += i;
}
if( valueOfC1 > valueOfC2 ) return -1;
if( valueOfC1 < valueOfC2 ) return 1;
return 0;
}
}