java 斗地主实现
package com.xgmzhn.web.work;
import java.util.*;
public class DouDiZhu {
public static Integer[] index = new Integer[54];
private static Map<Integer, String> allCard = new HashMap<Integer, String>();
public static void three(List<Integer> list){
for (int z:list) {
System.out.print(z+" ");
}
System.out.println();
List<Integer> player1 = new ArrayList<>();
List<Integer> player2 = new ArrayList<>();
List<Integer> player3 = new ArrayList<>();
List<Integer> dp = new ArrayList<>();
int x=0;
for (int i=0;i<54;i+=3) {
if(i>=50){
dp.add(list.get(i));
dp.add(list.get(i+1));
dp.add(list.get(i+2));
}else{
if(x==0) {
player1.addAll(list.subList(i, i+3));
x+=1;
}else if(x==1){
player2.addAll(list.subList(i, i+3));
x+=1;
}else{
player3.addAll(list.subList(i, i+3));
x=0;
}
}
// list=new ArrayList<>();
// list.addAll(player1);
// list.addAll(player2);
// list.addAll(player3);
}
// for (int z:player1) {
// System.out.print(z+" ");
// }
// System.out.println();
}
public static void main(String[] args) {
initMap(allCard);//1.) 初始化卡牌
List<Integer> list = Arrays.asList(initCardNum(index));
Collections.shuffle(list);//2. 打乱排序 )洗牌
System.out.print("打乱后的牌:");
System.out.println();
//3.)发牌
three(list);//三张分后排序
System.out.println();
List<Integer> player1 = list.subList(0, 17);
List<Integer> player2 = list.subList(17, 34);
List<Integer> player3 = list.subList(34, 51);
List<Integer> dipai = list.subList(51, 54);
//4.)按大小排序
Collections.sort(player1);
Collections.sort(player2);
Collections.sort(player3);
Collections.sort(dipai);
List<String> user1= new ArrayList<>();
List<String> user2= new ArrayList<>();
List<String> user3= new ArrayList<>();
List<String> dp= new ArrayList<>();
//插入数据到每个玩家牌列
for (Integer i :player1){
user1.add(allCard.get(i));
}
for (Integer i :player2){
user2.add(allCard.get(i));
}
for (Integer i :player3){
user3.add(allCard.get(i));
}
for (Integer i :dipai){
dp.add(allCard.get(i));
}
//输出数据
System.out.print("玩家1:");
for (String i :user1){
System.out.print(i);
}
System.out.println();
System.out.print("玩家2:");
for (String i :user2){
System.out.print(i);
}
System.out.println();
System.out.print("玩家3:");
for (String i :user3){
System.out.print(i);
}
System.out.println();
System.out.print("底牌:");
for (String i :dp){
System.out.print(i);
}
}
// 初始化卡牌数量
public static Integer[] initCardNum(Integer[] index) {
for (int i = 1; i < 55; i++) {
index[i - 1] = i;
}
return index;
}
//将卡牌按大小以及花色(黑红梅方)添加到map
public static void initMap(Map<Integer, String> map) {
String[] num = { "2", "A", "K", "Q", "J", "10", "9", "8", "7", "6",
"5", "4", "3" };
String[] color = { "♠","♥","♦","♣"};
map.put(1, "大\uD83C\uDCCF");
map.put(2, "小\uD83C\uDCCF");
int k = 3;
for (int i = 0; i < num.length; i++) {
for (int j = 0; j < color.length; j++) {
map.put(k, color[j] + num[i]);
k++;
}
}
// for (int i=1;i<=54;i++) {
// System.out.print(map.get(i));
// }
}
}