/**
* @author shuai1.liu
* @create 2018-09-21 13:36
* @desc
**/
package cn.com.callback;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Random;
public class Main {
public static void main (String [] args){
System.out.println(System.currentTimeMillis());
List<List<String>> meiPaiPeopleList = initPeople(); //未发完牌的人
List<List<String>> youPaiPeopleList = new ArrayList<>(); //有牌的人的集合
//初始化总牌数
List<List<String>> pukeList = initPuke();
Random random = new Random();
for (int i = 0; i < 51; i++) {
int who = random.nextInt(meiPaiPeopleList.size());//发给谁
int hang = random.nextInt(pukeList.size()); //发哪种花色的牌
int lie = random.nextInt(pukeList.get(hang).size()); // 发花色的几号牌
List<String> people = meiPaiPeopleList.get(who);
List<String> huase = pukeList.get(hang);
people.add(huase.get(lie));
huase.remove(lie);
if (people.size() == 17){
youPaiPeopleList.add(people);
meiPaiPeopleList.remove(people);
}
if (huase.size() == 0){
pukeList.remove(huase);
}
}
System.out.println(System.currentTimeMillis());
for (int i = 0; i < youPaiPeopleList.size(); i++) {
List<String> list = youPaiPeopleList.get(i);
list.sort(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
int i1 = Integer.valueOf(o1);
int i2 = Integer.valueOf(o2);
if (i1 > i2){
return 0;
}else {
return -1;
}
}
});
for (int j = 0; j < list.size(); j++) {
System.out.print(list.get(j)+",");
}
System.out.println();
}
for (int i = 0; i < pukeList.size(); i++) {
List<String> list = pukeList.get(i);
for (int j = 0; j < list.size(); j++) {
String s = list.get(j);
System.out.print(s+",");
}
System.out.println();
}
System.out.println(System.currentTimeMillis());
}
/**
* 初始化所有人
* @return
*/
public static List<List<String>> initPeople(){
List<List<String>> allPeopleList = new ArrayList<>();
List<String> zhangsan = new ArrayList<>();
List<String> lisi = new ArrayList<>();
List<String> wangwu = new ArrayList<>();
allPeopleList.add(zhangsan);
allPeopleList.add(lisi);
allPeopleList.add(wangwu);
return allPeopleList;
}
/**
* 初始化总牌数
* @return
*/
public static List<List<String>> initPuke(){
List<List<String>> pukeList = new ArrayList<>();
List<String> heitao = new ArrayList<>();
List<String> hongtao = new ArrayList<>();
List<String> meihua = new ArrayList<>();
List<String> fangpian = new ArrayList<>();
for (int i = 0; i < 14; i++) {
String aaa = i+"";
heitao.add(aaa);
hongtao.add(aaa);
meihua.add(aaa);
fangpian.add(aaa);
}
meihua.remove(13);
fangpian.remove(13);
pukeList.add(heitao);
pukeList.add(hongtao);
pukeList.add(meihua);
pukeList.add(fangpian);
return pukeList;
}
}
java实现斗地主发牌
最新推荐文章于 2024-03-05 16:17:15 发布