/**
* 模拟实现斗地主发牌过程的实现步骤
* 1.准备一副扑克牌
* a.定义一个ArrayList集合用来存放54张扑克
* b.定义一个String类型的数组用来构建花色[♠,♥,♦,♣]
* c.定义一个String类型的数组用来保存扑克牌具体的值[3,4,5,6,7,8,9,10,J,Q,K,A,2]
* d.把大小王添加到ArrayList集合中
*
* 2.洗牌
* 通过集合的一个操作类Collections提供的一个相关方法(shuffle)实现洗牌的操作
* (Collections是类,Collection是接口)
*
* 3.发牌的过程
* a.定义三个玩家和一个接收底盘的容器
* b.遍历ArrayList集合中,如何实现每个玩家轮流拿牌
* 当下标大于等于51,剩下的这三张牌是底牌
* 三个人可以使用下标对3求余 0%3=0 分给玩家1,1%3=1 分给玩家2,2%3=2 分给玩家3
*
* 4.看牌
* 所有人明牌
*
*
*/
public static void main(String[] args) {
//1.准备一副扑克牌
List<String> poker = new ArrayList<String>();
String[] colors = {"♠","♥","♦","♣"};
String[] values = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
for(int i=0; i<colors.length; i++){
for(int j=0; j<values.length; j++){
poker.add(colors[i]+values[j]);
}
}
poker.add("大王");
poker.add("小王");
//扑克牌准备就绪
// for(String l : poker){
// System.out.println(l);
// }
//2.洗牌
Collections.shuffle(poker);
//洗牌完毕
// for(String l : poker){
// System.out.println(l);
// }
//3.发牌
List<String> play01 = new ArrayList<String>();//玩家一
List<String> play02 = new ArrayList<String>();//玩家二
List<String> play03 = new ArrayList<String>();//玩家三
List<String> dipai = new ArrayList<String>();//底牌
for(int i=0; i<poker.size(); i++){
if(i>=51){
dipai.add(poker.get(i));
}
else if(i%3 == 0){
play01.add(poker.get(i));
}
else if(i%3 == 1){
play02.add(poker.get(i));
}
else if(i%3 == 2){
play03.add(poker.get(i));
}
}
//全体明牌
System.out.println("玩家一:");
for(String p01 : play01){
System.out.print(p01+" ");
}
System.out.println("\n"+"玩家二:");
for(String p02 : play02){
System.out.print(p02+" ");
}
System.out.println("\n"+"玩家三:");
for(String p03 : play03){
System.out.print(p03+" ");
}
System.out.println("\n"+"底牌:");
for(String dp : dipai){
System.out.print(dp+" ");
}
//叫地主了(玩家一是地主)
play01.addAll(dipai);
System.out.println("\n"+"玩家一叫地主了:");
for(String p01 : play01){
System.out.print(p01+" ");
}
}
}
java--实现简单斗地主
最新推荐文章于 2024-07-06 11:28:20 发布