• 模拟斗地主洗牌发牌


    模拟斗地主洗牌发牌

    3.1 案例介绍

    按照斗地主的规则,完成洗牌发牌的动作。

    具体规则:

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

    规则:手中扑克牌从大到小的摆放顺序:大王,小王,2,A,K,Q,J,10,9,8,7,6,5,4,3

    3.2 案例需求分析

    1. 准备牌:

    完成数字与纸牌的映射关系:

    使用双列Map(HashMap)集合,完成一个数字与字符串纸牌的对应关系(相当于一个字典)。

    1. 洗牌:

    通过数字完成洗牌发牌

    1. 发牌:

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

    存放的过程中要求数字大小与斗地主规则的大小对应。

    将代表不同纸牌的数字分配给不同的玩家与底牌。

    1. 看牌:

    通过Map集合找到对应字符展示。

    通过查询纸牌与数字的对应关系,由数字转成纸牌字符串再进行展示。

    public static void main(String[] args) {
            // 1.准备牌
            // 创建一个Map集合,存储牌的索引和组装好的牌
            HashMap<Integer,String> poker = new HashMap<>();
            // 创建一个List集合,存储牌的索引
            List<Integer> pokerIndex = new ArrayList<>();
            // 定义两个集合,存储花色和牌的序号
            ArrayList<String> colors = List.of("♦", "♣", "♥", "♠");
            ArrayList<String> numbers =List.of("2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3");
            // 把大王和小王存储到集合中
            // 定义一个牌的索引
            int index = 0;
            poker.put(index,"大王");
            poker.Index.add(index);
            index++;
            poker.put(index,"小王");
            poker.Index.add(index);
            index++;
    
            //循环嵌套遍历两个集合,组装52张牌,存储到集合中
            for(String number:Numbers){
                for(String color:colors){
                    poker.put(index,color+number);
                    pokerIndex.add(index);
                    index++;
                }
            }
            System.out.println(poker);
            System.out.println(pokerIndex);
        }
    
  • 相关阅读:
    asp.net,cookie,写cookie,取cookie(转载)
    Powerdesign使用小技巧(转载)
    注册asp.net 4.0 到iis
    jQuery的弹出窗口插件colorbox
    sql自动增长标识(转载)
    SVN服务器更改ip地址客户端怎么设置(转载)
    IIS6.0应用程序池回收(转载)
    [delphi]修改indy源码后重新编译
    IdHttp 资料
    c/s程序版本自动升级的问题,如何判断client端版本号是否最新,然后从指定ftp服务器down
  • 原文地址:https://www.cnblogs.com/anke-z/p/12585040.html
Copyright © 2020-2023  润新知