javase模拟斗地主洗牌和发牌(54)

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/416852.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sudo apt update提示某个源超时

sudo apt update提示某个源超时 进入软件更新器&#xff0c;设置&#xff0c;选择其他软件&#xff0c;删除超时的连接。

jdk8 list转Map

函数&#xff1a;Collectors.toMapc 使用toMap()函数之后&#xff0c;返回的就是一个Map了&#xff0c;会需要key和value。 toMap()的第一个参数就是用来生成key值的&#xff0c;第二个参数就是用来生成value值的。 第三个参数用在key值冲突的情况下&#xff1a;如果新元素产…

微信小程序 三元运算 checked

预期效果&#xff1a; 根据用户性别&#xff0c;显示radio group&#xff0c;并将相应radio checked 代码如下&#xff1a; <view class"form-line"> <view wx:if"{{userInfo.gender 1 }}">性别&#xff1a;</view> <radio-gr…

C#-ToString格式化

Int.ToString(format): 格式字符串采用以下形式&#xff1a;Axx&#xff0c;其中 A 为格式说明符&#xff0c;指定格式化类型&#xff0c;xx 为精度说明符&#xff0c;控制格式化输出的有效位数或小数位数&#xff0c;具体如下&#xff1a; 格式说明符 说明示例输出C货币2.5.To…

ElasticSearch统计总数据量

统计总数据条数 GET /page-access/_count { } 或 通配符 GET /logstash-*/_count { } 或 多个 GET /page-access,logstash-*/_count { } url中前面的部分就是匹配需统计的索引 返回内容&#xff1a; { "count" : 3478311, "_shards" : { …

js基础总结

javascript:js-15天10-12:js原生态代码Ajax和jquery13-152天前台框架 bootstrap ---------------------------------------------------------------------js_01---------------------------------------------------------------------1.什么是js&#xff1f;原名javascript&a…

Spring Cloud Gateway Predicate.Path过滤分析

源码位置 spring-cloud-gateway-core-2.0.1.RELEASE-sources.jar!/org/springframework/cloud/gateway/handler/predicate/PathRoutePredicateFactory.java 过滤方法 Overridepublic Predicate<ServerWebExchange> apply(Config config) {synchronized (this.pathPatter…

《大型网站技术架构:核心原理与案例分析》-- 读书笔记 (2) : 大型网站核心架构要素(1) -- 性能...

1. 性能 在浏览器端&#xff0c;可能通过浏览器缓存、使用页面压缩、合理布局页面、减少cookie传输等手段改善性能。还可以使用CDN&#xff0c;将网站静态内容分发至离用户最近的网络服务商机房。可以在网站机房部署反向代理服务器&#xff0c;缓存热点文件&#xff0c;加快请求…

ubuntu18.04安装mysql8

下载apt包 https://dev.mysql.com/downloads/repo/apt/ 安装 sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb #选择 OK sudo apt update 安装mysql8 sudo apt install mysql-server 输入密码 密码加密方式选择5.x Use Legacy Authentication Method (Retain MySQL 5.x Comp…

python3 centos7 Python.h无法找到

环境python3.6、centos7 安装geohash包时报错“致命错误:Python.h:没有那个文件或目录” 运行如下命令即可 yum install -y python3-devel 如果找不到该包&#xff0c;就比较麻烦了&#xff0c;即使下载到这个包&#xff0c;又依赖其他的包&#xff0c;其他的包也需要再找&am…

MATLAB入门学习(三)

我们再来看看矩阵常用的函数&#xff0c;除了上一篇提到的inv还有以下常见命令&#xff1a; det 计算方阵行列式 eig 计算特征值 trace 计算矩阵的迹 norm 计算矩阵的范数或模 orth 正交化 poly 求特征多项式 lu LU分解 【看到这些突然觉得我线性代数没学好(ノへ&#xffe3;、…

centos yum 安装python3.6+pip

yum install -y python3 或者 yum install -y python36 ln -s /usr/bin/python36 /usr/bin/python3 对应的执行命令 python3 pip3

centos7 python3.6编译安装

目录 安装编译依赖 下载python包 解压编译&安装 连接文件 安装pip 安装编译依赖 yum -y install gcc automake autoconf libtool make zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-deve…

P M P 常用缩写及公式

常用缩写 A AC&#xff1a;实际成本- Actual Cost : 在一个给定的时间段内&#xff0c;为完成进度活动或工作分解结构组成部分的工作&#xff0c;而实际发生并记录在案的总成本。实际成本有时仅为直接工时或直接成本&#xff0c;有时也为包括间接成本在内的所有成本。实际成本…

java控制台输出百分比进度条示例

System.out.print("\b") 会在控制台下往回删掉一个字符&#xff0c;如果你想回删多个字符就打印多个 "\b" public static void main(String[] args) throws Exception { System.out.print("Progress:"); for (int i 1; i < 100; i)…