斗地主案例操作

package demoDoudizhuGame;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;

//实现斗地主游戏
//思考:如何才能进行斗地主
//使用54张牌打乱顺序,三个玩家参与游戏三个人交替摸排,没人17张牌,最后三章作为底牌
//首先第一步将54张牌存储到一个集合当中,然后有四种花色 有两张特殊的大小王 13个序列存储到集合或者数组当中
//循环嵌套遍历两个数组来组装这两个集合
//洗牌
//因为存储牌进数组 会成为有序的
//使用集合工具类Collections的方法
// static void shuffle(List<?> list)使用指定的随机源对指定列表进行置换
//这个方法会随机打乱集合中的顺序
//发牌
//一人17张牌,剩余3张做底牌,一人一张轮流发牌 集合的索引(0-53)%3
//定义四个集合来存储玩家的手牌和底牌
//索引%2有两个值 (0,1);
//索引%3有三个值(0,1,2);
//索引>=51改为底牌发牌;
//看牌 直接打印 或者遍历存储玩家和底牌的集合
// 解析 如果>51那就给底牌 如果索引%3=0-玩家1 索引%3=1–玩家2 索引%3=2—给玩家三
public class demo {
//准备一个有54个牌的集合 泛型使用字符串
public static void main(String[] args) {
ArrayList PK = new ArrayList<>();//准备一个集合
//定义两个数组来存储花色和序列
String [] color = {“♥”,“♣”,“♠”,“♦”};
String [] nnumber ={“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“10”,“J”,“Q”,“K”};
//大小王
PK.add(“大王”);
PK.add(“小王”);
//组装牌完成
for (int i = 0; i < nnumber.length; i++) {
for (int j = 0; j < color.length; j++) {
PK.add(nnumber[i]+color[j]);
// System.out.print(nnumber[i]+color[j]+",");
}
}
//洗牌成功
Collections.shuffle(PK);
//开始发牌
//定义4个集合 存储发的牌和作庄牌
ArrayList py1 = new ArrayList<>();
ArrayList py2 = new ArrayList<>();
ArrayList py3 = new ArrayList<>();
ArrayList dipai = new ArrayList<>();
//遍历Pk集合 获取索引%3 三张给底牌 先给底牌
for(int i= 0;i<PK.size();i++){
String str =PK.get(i);
if(i>=51){
dipai.add(str);
}else if(i%30){
py1.add(str);
}
else if(i%3
1){
py2.add(str);
} else if (i%3==2){
py3.add(str);
}
}
//发牌完成
//看牌
for (String A:py1
) {
System.out.print(A);

    }
    System.out.println();
    System.out.println("************");
    for (String B:py2
    ) {
        System.out.print(B);
    }
    System.out.println();
    System.out.println("************");


    for (String C:py3
    ) {
        System.out.print(C);
    }
}

}


版权声明:本文为qq_44125809原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。