【Java】模拟斗地主
模拟斗地主洗牌发牌
- 新建54张牌
- 洗牌
- 留3张底牌
- 发牌
主要代码
import java.util.*;
public class DouDiZhu {
public static void main(String[] args){
//1.新建54张牌
List<String> colors=new ArrayList<>();
colors.add("♥");
colors.add("♠");
colors.add("♣");
colors.add("♦");
List<String> numbers = new ArrayList<>();
Collections.addAll(numbers,"3","4","5","6","7","8","9","10","J","Q","K","A","2");
HashMap<Integer, String> pokes = new HashMap<>();
int index=0;
for (String n:numbers){
for (String c:colors){
String pai=c+n;
pokes.put(index++,pai);
}
}
pokes.put(index++,"大鬼");
pokes.put(index++,"小鬼");
//2.洗牌
List<Integer> cards=new ArrayList<>();
for (int i = 0; i <= 53; i++) {
cards.add(i);
}
Collections.shuffle(cards);
//3.留3张底牌
//4.发牌
ArrayList<Integer> A=new ArrayList<>();
ArrayList<Integer> B=new ArrayList<>();
ArrayList<Integer> C=new ArrayList<>();
ArrayList<Integer> dipai=new ArrayList<>();
for (int i=0;i<cards.size();i++){
int pai=cards.get(i);
if (i>=51){
dipai.add(pai);
}else {
if (i%3==0){
A.add(pai);
}else if (i%3==1){
B.add(pai);
}else {
C.add(pai);
}
}
}
//理牌
Collections.sort(A);
Collections.sort(B);
Collections.sort(C);
Collections.sort(dipai);
List<String> iA=new ArrayList<>();
List<String> iB=new ArrayList<>();
List<String> iC=new ArrayList<>();
List<String> idipai=new ArrayList<>();
for (Integer key : A) {
iA.add(pokes.get(key));
}
for (Integer key : B) {
iB.add(pokes.get(key));
}
for (Integer key : C) {
iC.add(pokes.get(key));
}
for (Integer key : dipai) {
idipai.add(pokes.get(key));
}
System.out.println("底牌:"+idipai);
System.out.println("玩家A:"+iA);
System.out.println("玩家B:"+iB);
System.out.println("玩家C:"+iC);
}
}