ArrayList斗地主发牌的实现

  1. 牌:大王小王2张牌,A…J,Q,K和四种花色的组合4*13=52张牌,一共54张。
  2. 洗牌:牌的顺序打乱
  3. 发牌
  4. 看牌
import java.util.ArrayList;
import java.util.Collections;

public class demo8Doudizhu {
    public static void main(String[] args){
        ArrayList<String> poker = new ArrayList<>();//存所有的牌
        String[] colors = {"红心","黑桃","黑色梅花","红色方块"};//存花色
        String[] numbers = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};//存数字
        poker.add("大王");
        poker.add("小王");
        for(String color : colors){
            for(String number : numbers){
                String s = color+number;
                poker.add(s);
            }
        }
        System.out.println(poker);

        Collections.shuffle(poker);//洗牌

        ArrayList<String> player1 = new ArrayList<>();
        ArrayList<String> player2 = new ArrayList<>();
        ArrayList<String> player3 = new ArrayList<>();
        ArrayList<String> shengyudepai = new ArrayList<>();

        for(int i = 0;i<poker.size();i++){
            if (i>=51){
                shengyudepai.add(poker.get(i));
            }
            else if (i%3==0){
                player1.add(poker.get(i));
            }
            else if (i%3==1){
                player2.add(poker.get(i));
            }
            else
                player3.add(poker.get(i));
        }
        System.out.println("玩家1的牌为"+player1);
        System.out.println("玩家2的牌为"+player2);
        System.out.println("玩家3的牌为"+player3);
        System.out.println("剩余三张牌为"+shengyudepai);
        System.out.println(poker.indexOf("红心4"));//indexOf()根据括号中内容找索引,get()根据括号中索引找内容
    }
}

注意:
除了大王小王,其他牌可以看成花色和数字的组合
Collections.shuffle(poker);//洗牌
发牌的时候,最后三张牌先留出来,避免底牌不足的情况

发布了25 篇原创文章 · 获赞 2 · 访问量 337

猜你喜欢

转载自blog.csdn.net/qq_41628448/article/details/104523905
今日推荐