斗地主1.0

需求:

 案例分析

准备牌:

牌可以设计为一个ArrayList<String>,每个字符串为一张牌。
每张牌由花色数字两部分组成,我们可以使用花色集合与数字集合嵌套迭代完成每张牌的组装。
牌由Collections类的shuffle方法进行随机排序。

发牌:

将每个人以及底牌设计为ArrayList<String>,将最后3张牌直接存放于底牌,剩余牌通过对3取模依次发牌。

看牌:

直接打印每个集合。

代码实现:

package demo01;

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

public class DouDIZhu {
    public static void main(String[] args) {
        // 准备好一个集合存储牌
        ArrayList<String> poker = new ArrayList<>();
        //定义一个数组存储扑克的花色
        String[] colors = {"♠", "♥", "♣", "♦"};
        // 定义一个数组存储扑克的大小
        String[] numbers = {"A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3", "2"};
        // 添加2张特殊的牌 大小王 进入集合
        poker.add("大王");
        poker.add("小王");
        // 循环遍历,组装牌
        for (String s : colors) {
            for (String number : numbers) {
                // 添加到存储牌的集合中去
                poker.add(s + number);
            }
        }

        // 洗牌
        Collections.shuffle(poker);
        //定义一个存储底牌的集合
        ArrayList<String> diPa = new ArrayList<>();
        ArrayList<String> Game1 = new ArrayList<>();
        ArrayList<String> Game2 = new ArrayList<>();
        ArrayList<String> Game3 = new ArrayList<>();
        // 发牌
        for (int i = 0; i < poker.size(); i++) {
            // index 大于等于51 牌全部给底牌
            if (i >= 51) {
                diPa.add(poker.get(i));
            } else if (i % 3 == 0) {
                Game1.add(poker.get(i));
            } else if (i % 3 == 1) {
                Game2.add(poker.get(i));
            } else if (i % 3 == 2) {
                Game3.add(poker.get(i));
            }

        }
        // 看牌
        System.out.println(diPa);
        System.out.println(Game1);
        System.out.println(Game2);
        System.out.println(Game3);

    }
}

执行结果:

猜你喜欢

转载自www.cnblogs.com/wurengen/p/10781628.html
今日推荐