//玩家类
public class Wan {
String name ;
Kapai kap;
Wan(String name,Kapai kap){
this.name=name;
this.kap= kap;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Kapai getKap() {
return kap;
}
public void setKap(Kapai kap) {
this.kap = kap;
}
public String toString() {
return "["+this.kap.getPai()+" "+this.kap.getShu()+"]";
} //卡牌类
public class Kapai {
private String pai;//卡牌名字
private String shu;//卡牌数字
public Kapai(String pai,String shu){
this.pai=pai;
this.shu=shu;
}
//重新 equals 和hashCode方法 用于判别不同的手牌
@Override
public String toString() {
return "["+this.getPai()+" "+this.getShu()+"]";
}
@Override
public boolean equals(Object obj) {
if(this==obj){
return true;
}
if(obj instanceof Kapai){
Kapai k = (Kapai)obj;
if(k.pai.equals(this.pai) && k.shu.equals(this.shu)){
return true;
}else{
return false;
}
}else{
return false;
}
}
@Override
public int hashCode() {
return this.shu.hashCode()+this.pai.hashCode();
}
public String getPai() {
return pai;
}
public void setPai(String pai) {
this.pai = pai;
}
public String getShu() {
return shu;
}
public void setShu(String shu) {
this.shu = shu;
} }
//比较器
import java.util.Comparator;
public class Compara01 implements Comparator{
@Override
public int compare(Object arg0, Object arg1) {
Wan p1 = (Wan)(arg0);
Wan p2 = (Wan)(arg1);
int s = p2.getKap().getShu().compareTo(p1.getKap().getShu());
return s==0?p2.getKap().getPai().compareTo(p1.getKap().getPai()):s;
} }
//玩家最大手牌类
public class max {
Wan wan;
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.Random;
import java.util.Scanner;
public class Dome {
public static void main(String[] args) {
ArrayList
ArrayList
ArrayList
ArrayList
Dome d= new Dome();//创建本类对象
System.out.println("----------创建扑克牌--------------");
System.out.println("----------扑克牌创建成功-------------");
d.pu(list);//传入卡牌集合 对卡牌进行初始化
System.out.println("----------开始洗牌------------");
Collections.shuffle(list);//对卡牌集合进行打乱顺序
System.out.println("----------洗牌结束-------------");
System.out.println("-----------创建玩家--------------");
Scanner sa = new Scanner(System.in);
Random ra = new Random();//定义随机数对象
String[] str = new String[2];//定义一个数组 用户接受用户所属于的玩家名字
for(int x=0; x System.out.println("请输入第"+(x+1)+"位玩家的id和名字");
System.out.println("输入ID:");
int id = sa.nextInt();
System.out.println("输入名字:");
String name = sa.next();
str[x] = name;//接受名字
}
for(int x= 0;x System.out.println("-----欢迎玩家"+str[x]);
}
System.out.println("---------开始发牌--------");
for(int x= 0;x for(int y=0;y System.out.println("------玩家:"+str[y]+"拿牌");
int i = ra.nextInt(list.size());//产生一个长度为卡牌集合长度的一个随机数
Kapai pp = list.get(i);//用随机数得到一个随机的卡牌对象 这里会产出一个相同的随机数 懒得想了。。。。。
if(y==0){
wan1.add(new Wan(str[y],pp));//玩家1开始存储手牌
}else{
wan2.add(new Wan(str[y],pp));//玩家2开始存储手牌
}
}
}
//对玩家1和玩家2的手牌进行排序 会得到角标为0的数是最大的手牌
Collections.sort(wan1, new Compara01());//自己定义比较器
Collections.sort(wan2, new Compara01());//自己定义比较器
System.out.println("-------发牌结束开始游戏-----------");
for(int x=0;x list){
//定义会出现的卡牌颜色跟数字
String[] s = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
String[] p = {"方片","梅花","红桃","黑桃"};
//循环添加进卡牌对象集合
for(int y = 0; y it = list.iterator();
while(it.hasNext()){
Kapai kk =(Kapai)it.next();
System.out.print(kk+" ");
}
}
//遍历玩家集合
public void maxx(ArrayList wan){
Iteratorit1 = wan.iterator();
while(it1.hasNext()){
Wan wa = it1.next();
Kapai kp = wa.getKap();
String n = wa.getName();
System.out.println(n+":"+kp);
}
} }
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4273/viewspace-2798899/ ,如需转载,请注明出处,否则将追究法律责任。