07.模拟斗地主发牌

斗地主案例

具体规则:

  1. 组装54张扑克牌
  2. 将54张牌顺序打乱
  3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。
  4. 查看三人各自手中的牌、底牌
package com.itheima_03;

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

/*
 * 模拟斗地主发牌
 * 
 * 买牌
 * 洗牌
 * 发牌
 */
public class CollectionsTest {
    public static void main(String[] args) {
        //买牌
        String[] arr = {"黑桃","红桃","方片","梅花"};
        String[] arr2 = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
        
        ArrayList box = new ArrayList();
        //添加每张牌
        for (int i = 0; i < arr.length; i++) {
            //获取每一个花色
            for (int j = 0; j < arr2.length; j++) {
                //获取每一个数
                box.add(arr[i]+arr2[j]);
            }
        }
        box.add("大王");
        box.add("小王");
//      System.out.println(box.size());//查看牌个数
        
        //洗牌
        Collections.shuffle(box);
//      System.out.println(box);//验证
        
        //发牌
        ArrayList 赌神 = new ArrayList();
        ArrayList 赌圣 = new ArrayList();
        ArrayList 赌侠 = new ArrayList();
        
        //留三张底牌给地主
        for (int i = 0; i < box.size()-3; i++) {
            /*
             * i = 0; i % 3 = 0
             * i = 1; i % 3 = 1;
             * i = 2; i % 3 = 2;
             * i = 3; i % 3 = 0;
             * i = 4; i % 3 = 1;
             * i = 5; i % 3 = 2;
             */
            
            if(i % 3 == 0) {
                赌神.add(box.get(i));
            }else if(i % 3 == 1) {
                赌圣.add(box.get(i));
            }else if(i % 3 == 2) {
                赌侠.add(box.get(i));
            }
        }
        
        System.out.println("赌神:"+赌神);
        System.out.println("赌圣:"+赌圣);
        System.out.println("赌侠:"+赌侠);
        
        System.out.println("底牌");
        /*System.out.println(box.get(box.size()-1));
        System.out.println(box.get(box.size()-2));
        System.out.println(box.get(box.size()-3));*/
        
        for (int i = box.size()-3; i < box.size(); i++) {
            System.out.println(box.get(i));
            /*
             * 赌神:[梅花4, 梅花7, 红桃3, 红桃2, 黑桃9, 方片A, 梅花K, 梅花6, 黑桃5, 梅花2, 方片J, 黑桃A, 红桃10, 梅花3, 方片8, 梅花9, 黑桃7]
             * 赌圣:[红桃A, 方片6, 方片2, 梅花J, 方片3, 黑桃2, 红桃9, 黑桃4, 红桃7, 小王, 红桃8, 方片Q, 黑桃J, 红桃6, 梅花8, 方片K, 红桃J]
             * 赌侠:[黑桃10, 方片4, 红桃5, 大王, 方片10, 梅花Q, 梅花A, 黑桃Q, 梅花5, 黑桃6, 方片7, 方片5, 黑桃3, 红桃K, 红桃Q, 黑桃K, 红桃4]
             *  底牌
             *  梅花10
             *  黑桃8
             *  方片9
             */
        }
    }
}

你可能感兴趣的:(07.模拟斗地主发牌)