zoukankan      html  css  js  c++  java
  • 斗地主

    晴天。
    /**
    * 模拟斗地主洗牌发牌
    * 1. 准备牌:
    完成数字与纸牌的映射关系:
    使用双列Map(HashMap)集合,完成一个数字与字符串纸牌的对应关系(相当于一个字典)。
    2. 洗牌:
    通过数字完成洗牌发牌
    3. 发牌:
    将每个人以及底牌设计为ArrayList,将后3张牌直接存放于底牌,剩余牌通过对3取模依次发牌。
    存放的过程中要求数字大小与斗地主规则的大小对应。
    将代表不同纸牌的数字分配给不同的玩家与底牌。
    4. 看牌: 通过Map集合找到对应字符展示。
    通过查询纸牌与数字的对应关系,由数字转成纸牌字符串再进行展示。

    */
    public class MapPoker {
    public static void main(String[] args) {
    /**
    * 创建牌盒
    */
    HashMap<Integer, String> pokerBox = new HashMap<>();
    //创建数字集合
    ArrayList<String> numbers = new ArrayList<>();
    //创建花色集合
    ArrayList<String> colors = new ArrayList<>();
    Collections.addAll(colors,"♦","♣","♥","♠");
    Collections.addAll(numbers,"2","A","K","Q","J","10","9","8","7","6","5","4","3");
    //设置存储编号的变量
    int count = 1;
    pokerBox.put(count++,"小王");
    pokerBox.put(count++,"大王");
    for (String number:numbers) {
    for (String color:colors) {
    String card = color+number;
    pokerBox.put(count++,card);
    }
    }

    //洗牌
    Set<Integer> numberSet= pokerBox.keySet();
    //将set转为list,使用shuffle()打乱顺序
    ArrayList<Integer> numberList = new ArrayList<>();
    numberList.addAll(numberSet);
    //打乱顺序
    Collections.shuffle(numberList);
    System.out.println("numberlist打乱后:+"+numberList);
    //完成三个玩家相继摸牌,留三张底牌。摸到的是KEY值。
    ArrayList<Integer> p1 = new ArrayList<>();
    ArrayList<Integer> p2 = new ArrayList<>();
    ArrayList<Integer> p3 = new ArrayList<>();
    ArrayList<Integer> dipai = new ArrayList<>();

    for (int i = 0; i <numberList.size() ; i++) {
    Integer card = numberList.get(i);
    if (i>=51){
    dipai.add(card);
    }else {
    if (i%3==0){
    p1.add(card);
    }else if (i%3==1){
    p2.add(card);
    }else if(i%3==2){
    p3.add(card);
    }
    }
    }
    //将手中的牌排序
    Collections.sort(p1);
    Collections.sort(p2);
    Collections.sort(p3);
    Collections.sort(dipai);

    //创建三个玩家牌面集合
    ArrayList<String> player1 = new ArrayList<>();
    ArrayList<String> player2 = new ArrayList<>();
    ArrayList<String> player3 = new ArrayList<>();
    ArrayList<String> paimian = new ArrayList<>();

    for (Integer i:p1) {
    String card = pokerBox.get(i);
    player1.add(card);
    }
    for (Integer i:p2) {
    String card = pokerBox.get(i);
    player2.add(card);
    }
    for (Integer i:p3) {
    String card = pokerBox.get(i);
    player3.add(card);
    }
    for (Integer i:dipai) {
    String card = pokerBox.get(i);
    paimian.add(card);
    }
    System.out.println("player1:"+player1);
    System.out.println("player2:"+player2);
    System.out.println("player3:"+player3);
    System.out.println("paimian:"+paimian);

    }
    }
  • 相关阅读:
    Springboot整合activeMq
    linux下安装activeMq
    linux下配置jdk
    thinkphp5 集成 redis
    linux下安装redis
    tp5集成swagger
    lombok
    idea下springboot环境搭建
    Mac环境下maven安装配置
    idea环境下搭建swagger2接口文档
  • 原文地址:https://www.cnblogs.com/lifengSkt/p/13267788.html
Copyright © 2011-2022 走看看