Java实现斗地主发牌过程
2019-07-10 15:52
295 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36650126/article/details/95343343
public class Poker {
public static void main(String[] args) {
**//准备花色** List<String> color = new ArrayList<String>(); color.add("♠"); color.add("♥"); color.add("♦"); color.add("♣"); **//准备数字** List<String> number = new ArrayList<String>(); Collections.addAll(number,"3","4","5","6","7","8","9","10","J","Q","K","A","2"); **//定义一个map集合:用来将数字与每一张牌进行对应** Map<Integer, String> map = new HashMap<Integer, String>(); int index = 0; for (String thisNumber : number) { for (String thisColor : color) { map.put(index++, thisColor+thisNumber); } } **//加入大小王** map.put(index++, "小王"); map.put(index++, "大王"); //一副54张的牌 ArrayList里边为0-53的数的新牌 List<Integer> cards = new ArrayList<Integer>(); for (int i = 0; i <= 53; i++) { cards.add(i); } **//洗牌** Collections.shuffle(cards); **//创建三个玩家和底牌** ArrayList<Integer> iPlayer = new ArrayList<Integer>(); ArrayList<Integer> iPlayer2 = new ArrayList<Integer>(); ArrayList<Integer> iPlayer3 = new ArrayList<Integer>(); ArrayList<Integer> itCards = new ArrayList<Integer>(); **//遍历这副洗好的牌,遍历过程中,将牌发到三个玩家和底牌中** for (int i = 0; i < cards.size(); i++) { if(i>=51) { itCards.add(cards.get(i)); } else { if(i%3==0) { iPlayer.add(cards.get(i)); }else if(i%3==1) { iPlayer2.add(cards.get(i)); }else { iPlayer3.add(cards.get(i)); } } } **//对每个人手中的牌排序** Collections.sort(iPlayer); Collections.sort(iPlayer2); Collections.sort(iPlayer3); **//对应数字形式的每个人手中的牌,定义字符串形式的牌** ArrayList<String> sPlayer = new ArrayList<String>(); ArrayList<String> sPlayer2 = new ArrayList<String>(); ArrayList<String> sPlayer3 = new ArrayList<String>(); ArrayList<String> sCards = new ArrayList<String>(); for (Integer key : iPlayer) { sPlayer.add(map.get(key)); } for (Integer key : iPlayer2) { sPlayer2.add(map.get(key)); } for (Integer key : iPlayer3) { sPlayer3.add(map.get(key)); } for (Integer key : itCards) { sCards.add(map.get(key)); } **//看牌** System.out.println("玩家一"+sPlayer); System.out.println("玩家二"+sPlayer2); System.out.println("玩家三"+sPlayer3); System.out.println("底牌"+sCards); }
}
相关文章推荐
- 在Java中实现回调过程
- 该文简要描述了DOM概念和内部逻辑结构,给出了DOM文档操作和XML文件互相转换java实现过程。
- java实现简单的窗体和密码验证(传参,事件机制和事件监听的作用过程)
- 在Java中实现回调过程
- Java实现mysql存储过程调用
- Java UrlRewrite 实现网站URL重写过程实录
- 三维装箱问题Java代码的简单实现过程
- 使用Java实现数据报通讯过程
- oracle实现存储过程的分页并用java代码调用存储过程
- 实现斗地主发牌(java)
- JAVA调用sqlserver存储过程的实现(返回多个结果集的实现)
- Java Serializable(序列化)的理解和总结、具体实现过程(转)
- Java Web开发过程中登陆模块的验证码的实现方式总结
- 分发器与控制器的疑惑 -- FLEAJAVA实现过程中
- 单元测试、自动化测试、接口测试过程中的Excel数据驱动(java实现)
- 用Java实现导出SQLServer数据库中所有存储过程,视图,函数和触发器
- 跨服务器登录验证(单点登录SSO)的过程和Java实现
- java下实现调用oracle的存储过程和函数
- 社会化搜索与推荐浅析-朴素贝叶斯+laplace平滑文本分类器推导过程及java版实现
- 在Java中实现回调过程