• 为什么我的结果不是一个人有十几个编号 而是一个人只有三个编号 有没有大
  • java
    3.00元

package cz.bxg.demo08;

import java.util.*;

/*
需求:模拟斗地主发牌
步骤:
1.买牌
2.洗牌
3.发牌
4.看牌
/
public class SendPokerText {
public static void main(String[] args) {
//1.买牌************************************************************************

   //1.1定义一个双列集合,键:表示牌的编号,值:表示具体的牌。规则:编号越小,牌越小.|
   Map<Integer, String> pokers = new HashMap<>();
   //1.2定义一个单列集合,用来存储所有牌的编号.
   List<Integer> list = new ArrayList<>();
   //1.3具体的买牌动作。
   //普通牌52.
   String[] colors = {"♠", "♥", "♣", "♦"};
   String[] numbers = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2",};

   int num = 0;//表示牌的编号
   //通过循环嵌套 造 普通牌
   for (String number : numbers) {//外循环,来获取所有的点数
       for (String color : colors) {//内循环,获取所有的花色  内循环一圈外循环一次
           String poker = color + number;
           //将牌的编号,具体的牌放入双列集合中
           pokers.put(num, poker);
           //将牌的编号放在单列集合中
           list.add(num);
           //每增加一张牌,编号要自增1
           num++;
       }
   }
   //大小王
   pokers.put(num, "小王");
   list.add(num++);
   pokers.put(num, "大王");
   list.add(num++);
   //打印牌就可以了。
   System.out.println("所有的牌" + pokers);
   System.out.println("牌的编号" + list);

//**********************************************************************************************************
//2.洗牌
Collections.shuffle(list);
System.out.println("洗牌后" + list);
//**********************************************************************************************************
//3.发牌

// 3.1定义4个集合 分别表示3个玩家和底牌
List liuYiFei = new ArrayList<>();
List zhaoliying = new ArrayList<>();
List xiaohei = new ArrayList<>();
List dipai = new ArrayList<>();
// 3.2具体的发牌动作,具体的索引和取模,决定发给谁
for (int i = 0; i < list.size(); i++) {
//获取编号
Integer pokerNum = list.get(i);
System.out.println(pokerNum);//牌的顺序
if (i >= list.size() - 3) {//如果牌剩余3张那么久是底牌
dipai.add(pokerNum);//最后三张放入dipai的集合中
} else if (i / 3 == 0) {
liuYiFei.add(pokerNum);
} else if (i / 3 == 1) {
zhaoliying.add(pokerNum);
} else if (i / 3 == 2) {
xiaohei.add(pokerNum);

       }


   }
   //        3.3查看玩家
   System.out.println("刘亦菲:" + liuYiFei);
   System.out.println("赵丽颖:" + zhaoliying);
   System.out.println("小黑:" + xiaohei);
   System.out.println("底牌:" + dipai);

}

}

结果是:
刘亦菲:[9, 27, 34]
赵丽颖:[12, 26, 13]
小黑:[15, 28, 25]
底牌:[4, 36, 31]


  • 就几件    2020-06-12 09:41:37
  • 阅读 1121    收藏 0    回答 1
  • 邀请
  • 收藏
  • 分享
发送
登录 后发表评论
  • 51testing软件测试圈微信