1、使用Arraylist集合:

 1 package com.it18zhang.day08;
 2
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5
 6 public class PokerDemo {
 7
 8     public static void main(String[] args) {
 9         // TODO Auto-generated method stub
10         //牌合
11         ArrayList<String> al = new ArrayList<>();
12         String[] colors={ "♠", "♥", "♣", "♦" };
13         String[] nums={ "A", "2", "3", "4", "5", "6", "7", "8", "9", "10",
14                 "J", "Q", "K" };
15         for (String color : colors) {
16             for (String num : nums) {
17                 String pai=color.concat(num);
18                 al.add(pai);
19             }
20         }
21         al.add("大王");
22         al.add("小王");
23         ArrayList<String> p1 = new ArrayList<>();
24         ArrayList<String> p2 = new ArrayList<>();
25         ArrayList<String> p3 = new ArrayList<>();
26         ArrayList<String> dipai = new ArrayList<>();
27         Collections.shuffle(al);
28         for(int i=0;i<al.size();i++){
29             if(i>=al.size()-3){
30                 dipai.add(al.get(i));
31             }
32             else if(i%3==0){
33                 p1.add(al.get(i));
34             }
35             else if(i%3==1){
36                 p2.add(al.get(i));
37             }
38             else if(i%3==2){
39                 p3.add(al.get(i));
40             }
41         }
42             lookPoker("p1", p1);
43             lookPoker("p2", p2);
44             lookPoker("p3", p3);
45         }
46     public static void lookPoker(String name,ArrayList<String> array){
47         System.out.println(name+"的牌是:");
48         for (String string : array) {
49             System.out.print(string+" ");
50         }
51         System.out.println();
52     }
53 }

2、使用HashMap集合

 1 package com.lianxi1;
 2
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5 import java.util.HashMap;
 6 import java.util.TreeSet;
 7
 8 public class PokerDemo {
 9
10     public static void main(String[] args) {
11         //牌盒,用于存放牌及编号
12         HashMap<Integer, String> map = new HashMap<>();
13         //集合,用于存放编号
14         ArrayList<Integer> list = new ArrayList<>();
15         //花色数组
16         String[] colors={"♠", "♥", "♣", "♦"};
17         //点数数组
18         String[] nums={"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q",
19             "K", "A", "2", };
20         int index=0;
21         //分别存放牌及编号到集合中
22         for (String color : colors) {
23             for (String num : nums) {
24                 String pork=color.concat(num);
25                 map.put(index, pork);
26                 list.add(index);
27                 index++;
28             }
29         }
30         map.put(index, "小王");
31         list.add(index);
32         index++;
33         map.put(index, "大王");
34         list.add(index);
35         //洗牌(对编号集合进行)
36         Collections.shuffle(list);
37         //定义四个集合,用于存放底牌及玩家的手牌编号(由于排序,使用treeSet)
38         TreeSet<Integer> dipai = new TreeSet<>();
39         TreeSet<Integer> p1 = new TreeSet<>();
40         TreeSet<Integer> p2 = new TreeSet<>();
41         TreeSet<Integer> p3 = new TreeSet<>();
42         //发牌,实际是编号
43         for(int i=0;i<list.size();i++){
44             if(i>=(list.size()-3)){
45                 dipai.add(list.get(i));
46             }
47             else if(i % 3==0){
48                 p1.add(list.get(i));
49             }
50             else if(i % 3==1){
51                 p2.add(list.get(i));
52             }
53             else if(i % 3==2){
54                 p3.add(list.get(i));
55             }
56         }
57         //看牌
58         lookPork("p1", p1, map);
59         lookPork("p2", p2, map);
60         lookPork("p3", p3, map);
61         lookPork("dipai", dipai, map);
62
63     }
64     //对人的牌进行遍历
65     public static void lookPork(String name,TreeSet<Integer> ts,HashMap<Integer, String> map){
66         System.out.println(name+"的手牌是:");
67         for (Integer key : ts) {
68             System.out.print(map.get(key)+" ");
69         }
70         System.out.println();
71     }
72 }

转载于:https://www.cnblogs.com/yihaifutai/p/6754353.html

javase模拟斗地主洗牌和发牌(54)相关推荐

  1. Java实现模拟斗地主洗牌、发牌、看牌并排序

    1.模拟斗地主洗牌.发牌.看牌 /* * 模拟斗地主洗牌.发牌.看牌*/package PokerDemo;import java.util.ArrayList; import java.util.C ...

  2. Java——集合(模拟斗地主洗牌和发牌进行排序)

    //改进版,没有进行按牌的地位从小到大排序 package com.yy.test;import java.util.ArrayList; import java.util.Collections;p ...

  3. 模拟斗地主洗牌及发牌

    1,模拟斗地主洗牌和发牌并对牌进行排序的代码实现:创建一个集合对象,并将扑克牌储存进去.HashMap存储索引和扑克牌.拼接扑克牌将索引和扑克牌在hm中(获取数字颜色后将索引0-51添加到list集合 ...

  4. 集合框架练习—使用JAVA语言模拟斗地主洗牌、发牌并对牌进行排序案例代码。

    未排序前: package File;import java.util.ArrayList; import java.util.Collections;public class Poker {/*** ...

  5. 小伙子利用C++模拟斗地主洗牌和发牌,欢乐斗地主游戏源码展现!

    C++ 6.0写的网络版斗地主游戏,程序基于directx SDK开发,因此你在编译时需要引入相应文件才可以,本斗地主可以支持双人对战.网络对战,游戏随机产生地主,动画发牌,界面也不错,还有声音,学习 ...

  6. 18.集合框架(Map集合,HashMap和Hashtable的区别,Collections(集合工具类),集合练习,模拟斗地主(洗牌,发牌,看牌))

    1.Map集合概述和特点 1.需求:    根据学号获取学生姓名 2.Map接口概述     查看API可以知道:     将键映射到值的对象     一个映射不能包含重复的键     每个键最多只能 ...

  7. 【JAVASE】模拟斗地主洗牌发牌

    1.案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 组装54张扑克牌 54张牌顺序打乱 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 查看三人各自手中的牌(按照牌的大 ...

  8. java中Map集合、模拟斗地主洗牌发牌、JDK9对集合添加的优化

    1.1 Map集合概述 Map集合概述 Map==>映射(一个对应一个) Map是一个接口,只要实现了该接口的类都是双列集合. 双列集合每次存储元素时都需要存储两个元素,一个元素称为键,一个元素 ...

  9. 模拟斗地主洗牌发牌-JAVA

    1.1案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1.组装54张扑克牌 2.将54张牌顺序打乱 3.三个玩家参与游戏,三人交替摸牌,,每人17张牌,最后三张留作底牌. 4.查看三人各 ...

最新文章

  1. es根据磁盘使用情况来决定是否分配shard
  2. pip install jieba安装慢,安装失败,安装不解决办法
  3. mysql导出csv格式去除字段中的\n\r
  4. SDS趋势之二:对象存储将替代文件存储
  5. 如何快速清除 Ubuntu 的系统缓存
  6. 软件_crontab任务配置失败原因总结和技巧
  7. golang搭建静态web服务器的实现方法
  8. [Python] random.uniform( ) 函数教程与实例解析
  9. RemObjects
  10. react 动态路 嵌套动子路由_深入揭秘前端路由的本质
  11. Navicat Premium 15注册出现“rsa public key not find”
  12. Java软件工程师职业规划
  13. mysql根据出生日期计算年龄并查询
  14. 复变函数题目(持续更新)
  15. web服务 面试可能会问的问题
  16. 怎样用计算机放音乐,QQ音乐怎么用手机控制电脑放歌曲,qq音乐怎么连接电脑|qq音乐怎么用手机控制电脑...
  17. shift键计算机功能,分享新手必会的快捷键:shift键的11个妙用!
  18. 数学问 高考数学复习资料策略整理
  19. ABBYY FineReader 14之如何选择正确的OCR选项
  20. 11. Python3 测试代码

热门文章

  1. uni-app小程序 点击页面滚动到指定位置
  2. 解决 Windows Update 更新错误/无法创建还原点 代码 0x80246008
  3. Linux 内核打印级别
  4. 前端学习(3315):UI提取
  5. 前端学习(2850):简单秒杀系统学习之绝对定位
  6. 前端学习(2598):按钮控制操作
  7. 前端学习(2267)vue造轮子之添加icon
  8. 前端学习(1676):前端系列实战课程之贪吃蛇游戏设计
  9. 前端学习(587):快速调试css数值及颜色图形动画
  10. 前端学习(130):HTML和CSS发展历史