扑克牌排序脚本 扑克牌添加花色脚本 

备注:大M表示大王 小M表示小王 T表示10

package com.fuyun.bigdata.bdpaikubase.base.utils;import java.util.*;/*** @author qingyang* @descrpition 扑克牌排序脚本 扑克牌添加花色脚本* @date 2020-12-10*/
public class PokerUtil {public static String doCard(ArrayList<String> smj) {//牌List<String> pokes = new ArrayList<>();//颜色花色List<String> colors = new ArrayList<>();//数量List<String> nums = new ArrayList<>();colors.add("红");colors.add("梅");colors.add("方");colors.add("黑");nums.add("A");for (int i = 2; i <= 9; i++) {nums.add(i + "");}nums.add("T");nums.add("J");nums.add("Q");nums.add("K");for (String c : colors) {for (String n : nums) {String pai = c + n;pokes.add(pai);}}pokes.add("大M");pokes.add("小M");smj = paix(smj);String lastCard ="";for (int i=0;i<smj.size();i++){lastCard = lastCard+smj.get(smj.size()-1-i);}return lastCard;}private static <E> void swap(List<E> list, int index1, int index2) {   //数组元素交换位置E e=list.get(index1);list.set(index1, list.get(index2));list.set(index2, e);}static ArrayList<String> paix(ArrayList<String> x){    //纸牌有序化ArrayList<Integer> xyz=new ArrayList<>();int f=-1;
//复制一个数字类型的数组for (int i = 0; i < x.size(); i++) {if(x.get(i).equals("大M"))f=172;else if(x.get(i).equals("小M"))f=171;else {if (x.get(i).substring(1).equals("T"))f = 100;else if (x.get(i).substring(1).equals("A"))f = 140;else if (x.get(i).substring(1).equals("2"))f = 150;else if (x.get(i).substring(1).equals("J"))f = 110;else if (x.get(i).substring(1).equals("Q"))f = 120;else if (x.get(i).substring(1).equals("K"))f = 130;else f= Integer.parseInt(x.get(i).substring(1)) * 10;if(x.get(i).substring(0,1).equals("红")){f+=4;}else if(x.get(i).substring(0,1).equals("梅")){f+=3;}else if(x.get(i).substring(0,1).equals("方")){f+=2;}else if(x.get(i).substring(0,1).equals("黑")){f+=1;}}xyz.add(f);}//        System.out.println(xyz);for (int i = x.size(); i > 1; i--) {for (int j = 0; j < i-1; j++) {if(xyz.get(j) < xyz.get(j+1)){swap(xyz,j,j+1);swap(x,j,j+1);}}}return x;}public static void main(String [] arg){doCard("3444667788K2","4779TTQQQKAAmM");}//添加花色public static void doCard(String ai,String player) {//牌TreeSet<String> treeSet = new TreeSet<>();//颜色花色List<String> colors = new ArrayList<>();//数量List<String> nums = new ArrayList<>();colors.add("红");colors.add("梅");colors.add("方");colors.add("黑");nums.add("A");for (int i = 2; i <= 9; i++) {nums.add(i + "");}nums.add("T");nums.add("J");nums.add("Q");nums.add("K");for (String c : colors) {for (String n : nums) {String pai = c + n;treeSet.add(pai);}}treeSet.add("大M");treeSet.add("小M");String playerRealCard ="";for(int j=0;j<player.length();j++){String playerCard = player.substring(j,j+1);if("m".equals(playerCard)){playerCard="小M";}if("M".equals(playerCard)){playerCard="大M";}for(Iterator iter = treeSet.iterator(); iter.hasNext(); ) {String next = iter.next().toString();if(next.contains(playerCard)){playerRealCard=playerRealCard+next;treeSet.remove(next);break;}}}System.out.println(player);System.out.println(playerRealCard);String aiRealCard ="";for(int j=0;j<ai.length();j++){String aiCard = ai.substring(j,j+1);if("m".equals(aiCard)){aiCard="小M";}if("M".equals(aiCard)){aiCard="大M";}for(Iterator iter = treeSet.iterator(); iter.hasNext(); ) {String next = iter.next().toString();if(next.contains(aiCard)){aiRealCard=aiRealCard+next;treeSet.remove(next);break;}}}System.out.println(ai);System.out.println(aiRealCard);}}

扑克牌排序脚本 扑克牌添加花色脚本(java)相关推荐

  1. java扑克牌排序_扑克牌排列 运用List ArrayList Arrays

    描述:手里拿着这套扑克牌,从前面拿一张放在后面,再从前面拿一张放桌子上,再从前面拿一张放在后面,.... 如此循环操作,直到剩下最后一张牌也放在桌子上. 下面代码的目的就是为了求出最后桌上的牌的顺序. ...

  2. 扑克牌排序_JAVA 扑克牌排序打印,并进行洗牌

    点击上方蓝字关注我们 一.Puke类: 首先定义扑克牌的参数 定义字符串型的花色(color),点数(points)两个有关于扑克牌的参数,且用private关键字进行修饰,被private修饰的后的 ...

  3. 问题 D: 扑克牌排序(结构体)

    问题 D: 扑克牌排序(结构体) 时间限制: 1 Sec  内存限制: 128 MB 提交: 666  解决: 284 [提交][状态][讨论版] 题目描述 自定义结构体表示一张扑克牌,包含类型--黑 ...

  4. 整理全网Shell脚本合集,Java脚本,运维脚本,告警脚本,监控脚本,日志脚本,docker脚本等---------持续更新!

    整理全网Shell脚本合集,Java脚本,运维脚本,告警脚本,监控脚本,日志脚本,docker脚本等---------持续更新! 一.ffmpeg脚本 1.1 打开进程,并判断进程数量 1.2 关闭进 ...

  5. OpenWrt启动过程分析+添加自启动脚本【转】

    一.OpenWrt启动过程分析 转自: http://www.eehello.com/?post=107 总结一下OpenWrt的启动流程:1.CFE->2.linux->3./etc/p ...

  6. crt脚本怎么添加等待时间_抖音文案怎么写吸引人?130个抖音文案素材、案例分享!...

    本文将为你解决:抖音文案怎么写吸引人励志.抖音文案怎么写吸引人宝妈.抖音文案怎么写吸引人爱情.抖音文案怎么写吸引人案例等问题. 维维啊的视频为什么总能能让人捧腹大笑? 朱一旦的枯燥生活为什么总能引发无 ...

  7. 动态引入/添加js脚本

    前言 动态添加脚本到页面中 动态引入/添加js脚本 var script=document.createElement("script"); script.type="t ...

  8. 利用脚本批量添加域用户账户

    以下内容摘自笔者编著的<网管员必读--网络管理>(第2版)一书: 2.4.6 利用脚本批量添加域用户账户  以上两种方法是比较常用的批量用户账户添加方法,但是不够灵活(不可以设置密码),而 ...

  9. linux启动脚本添加命令,Linux添加shell(.sh)脚本并添加定时任务

    一.添加sheel脚本 1.首先创建一个执行程序:vim a.sh 2.编辑: #!/bin/bash python3  python.py >> test2.log 2>& ...

最新文章

  1. 超过Google,微信AI在NLP领域又获一项世界第一
  2. TiDB 在威锐达 WindRDS 远程诊断及运维中心的应用
  3. Linux的Page Cache
  4. wxWidgets:wxBitmapToggleButton类用法
  5. zabbix学习小结
  6. 转 OFBIZ webservice简介
  7. 360os比android,手机系统比拼360OS、Flyme究竟哪个好?
  8. java压缩linux上的文件,java linux下文件压缩
  9. 计算机系统确认的gmp附录,马义岭--中国GMP 附录确认与验证计算机化系统.pdf
  10. Running Median
  11. 用c语言编程,统计大写字母,小写字母,数字,其他字符的个数,用C语言:输入一行字符,不超过50个,统计出其中英文大写字母,小写字母,数字,空格以及其他字符个数...
  12. icodelab 取走的弹珠(多组数据)
  13. 亚马逊云科技 Build On -serverless商店行业应用实践
  14. [Western CTF 2018]shrine
  15. 畅想小组KTV点歌系统简介
  16. 用纯CSS写一个左右滑动的开关按钮
  17. C++中的var类型
  18. 前端ppt\word等等文件实现在线预览功能
  19. Anaconda中conda命令或者pip命令使用豆瓣镜像下载包
  20. android获取root权限的命令

热门文章

  1. 广州:以区块链产业发展作为服务实体经济的重要推手
  2. pytorch训练GAN时的detach()
  3. 坯子库曲面推拉教程_SketchUp创建建筑曲面教堂Philip Johnson
  4. 我的2011-不存在的一年
  5. 什么是接口 编程中关于接口的理解
  6. sqlmap百度爬虫
  7. python字符串强制转换购物练习
  8. matlab对nii文件处理,使用Nibabel库对nii格式图像的读写操作
  9. 注解mysql事物管理_Spring事务管理-注解版
  10. JS js实现数组以及字符串去重的方法