展开全部

package zhidao;

import java.util.Arrays;

import java.util.Collections;

import java.util.Comparator;

import java.util.Scanner;

/**

* 发牌32313133353236313431303231363533e78988e69d8331333337383836游戏

*/

public class PokerGame

{

/**

* 共有1幅扑克牌,不包括大王和小王共52张牌。

*/

public static final int POKER_NUMBER = 52;

/**

* 特殊分隔符 _

*/

private static final String T = "_";

/**

* 52张牌

* 顺序为黑桃、红心、草花、方块

*/

public static final String[] POKERS =

{

"A" + T + "0", "A" + T + "1", "A" + T + "2", "A" + T + "3",

"2" + T + "0", "2" + T + "1", "2" + T + "2", "2" + T + "3",

"3" + T + "0", "3" + T + "1", "3" + T + "2", "3" + T + "3",

"4" + T + "0", "4" + T + "1", "4" + T + "2", "4" + T + "3",

"5" + T + "0", "5" + T + "1", "5" + T + "2", "5" + T + "3",

"6" + T + "0", "6" + T + "1", "6" + T + "2", "6" + T + "3",

"7" + T + "0", "7" + T + "1", "7" + T + "2", "7" + T + "3",

"8" + T + "0", "8" + T + "1", "8" + T + "2", "8" + T + "3",

"9" + T + "0", "9" + T + "1", "9" + T + "2", "9" + T + "3",

"10" + T + "0", "10" + T + "1", "10" + T + "2", "10" + T + "3",

"J" + T + "0", "J" + T + "1", "J" + T + "2", "J" + T + "3",

"Q" + T + "0", "Q" + T + "1", "Q" + T + "2", "Q" + T + "3",

"K" + T + "0", "K" + T + "1", "K" + T + "2", "K" + T + "3"

};

/**

* 原始的扑克牌

*/

public static final String[] ORIAL_POKERS = POKERS.clone ();

/**

* 发到哪张牌 0

*/

public static int currentIndex = 0;

/**

* 四种花色

*/

public static final String POKER_COLOR = "黑桃" + T + "红心" + T + "草花" + T + "方块";

/**

* 发牌

* @param n int 一共几个人玩牌

* @param results 储存发牌结果的数组

*/

public static void drawPoker (int n, String[][] results)

{

int m = n - 1;

if (n == 0)

{

return;

}

int number = (POKER_NUMBER - currentIndex) / n;

while (number > 0)

{

String current = POKERS[currentIndex++];

String pk = current.split ("\\" + T)[0].trim ();

int col = Integer.parseInt (current.split ("\\" + T )[1].trim ());

if (null == results[m][col])

{

results[m][col] = pk + " ";

}

else

{

results[m][col] += pk + " ";

}

number--;

}

for ( int i = 0; i

{

for ( int j = 0; j

{

if (null == results[i][j])

{

results[i][j] = "";

}

}

}

drawPoker (--n, results);

}

/**

* 给牌排序

* @param orialPokers String 原始扑克牌

* @param temp String[] 每张花色的扑克牌数组

*/

private static void sortPokers ( final String orialPokers, String[] temp )

{

Arrays.sort (temp, new Comparator ()

{

@Override

public int compare ( String o1, String o2 )

{

int index1 = orialPokers.indexOf (o1 + T);

int index2 = orialPokers.indexOf (o2 + T);

if (index1 > index2)

{

return -1;

}

else if (index1

{

return 1;

}

else

{

return 0;

}

}

});

}

/**

* 洗牌

*/

private static void shufflePokers ( String[] POKERS )

{

Collections.shuffle (Arrays.asList (POKERS));

}

public static void main ( String[] args )

{

System.out.print ("输入人数:");

Scanner scanner = new Scanner (System.in);

int n = scanner.nextInt ();

scanner.close ();

String[] pColors = POKER_COLOR.split ("\\" + T );

String[][] results = new String[n][pColors.length];

shufflePokers (POKERS);

drawPoker (n, results);

final String poker = Arrays.toString (ORIAL_POKERS);

System.out.println ("\n输出如下:\n");

for (int i = 0; i

{

System.out.println ("第" + ( i + 1 ) + "个人:");

for ( int j = 0; j

{

String[] temp = results[i][j].trim ().split ("\\s+");

sortPokers (poker, temp);

System.out.println (pColors[j] + ":" + Arrays.toString (temp).replaceAll ("[\\,\\[\\]]", ""));

}

System.out.println ();

}

}

}

java程序 扑克牌概率_java扑克牌洗牌程序,求抽可以抽出特定牌的次数相关推荐

  1. java怎么实现购物车_java实现网上购物车程序

    导读热词 用java代码写一个简单的网上购物车程序,供大家参考,具体内容如下 需求: 1.写一个商品类,有商品编号.商品名称.商品分类.商品单价属性. 2.写一个商品条目信息类,有商品和数量两个属性, ...

  2. java程序 扑克牌概率_java – 最简单的扑克牌评估算法

    这是一个非常简短但完整的基于直方图的5卡扑克评分函数在Python(2.x).如果转换为Java,它会变得更长. def poker(hands): scores = [(i, score(hand. ...

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

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

  4. java sleep不能使用_java无主窗口GUI程序主线程不能调用sleep(long)方法,会产生异常...

    java无主窗口GUI程序主线程不能调用sleep(long)方法,会产生异常. public class fxframe{ public static void main(String[] args ...

  5. java里程序控制流程_Java语言中的程序流程控制

    (1. 流程控制 有三种基本技术可以改变程序的控制流程: A.调用方法 :将导致控制流程离开当前方法,转移到被调用的方法. B.选择  :   a. if / else 语句 b. switch语句 ...

  6. win7 docker java开发环境变量_java – Docker. Spring应用程序.设置和获取环境变量

    我正试图将我的Spring应用程序停靠. 问题: 我无法从我的Spring应用程序中获取docker容器中的环境变量. Spring配置(2个选项,单独试用) 也试过java URI dbUrl = ...

  7. java程序启动打印_JAVA打印问题:程序正常运行,打印机无反应

    我需要打印一份TXT文件,但是运行后程序未出现异常,打印机却没有反应.打印机在其他地方都是正常工作的.求解为什么???打印机型号:GprinterGP-9035T代码:importjava.awt.G ...

  8. java象棋游戏参考文献_java中国象棋(论文+程序)

    java中国象棋(论文+程序) 如有需要请联系 QQ:958035640 目 录 第1章 象棋的由来. ------------------------ 1 第2章 技术可行性分析 --------- ...

  9. java 背单词系统_java实现背单词程序

    本文实例为大家分享了java实现背单词程序的具体代码,供大家参考,具体内容如下 山东科技大学济南校区程序设计 功能要求:可以读入一个单词表文本文件, 能够将背错的单词重复记忆,直到全记住. packa ...

  10. java计算器简单源代码_java 简单的计算器程序实例代码

    java 简单的计算器程序 实现实例: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class C ...

最新文章

  1. java应用窗口大小_java 如何让程序窗口随屏幕大小改变 | 学步园
  2. 5G产业发展最新进展深度解析(144页PPT)
  3. 全球科技大会鸿蒙,华为开发者大会:全球瞩目的“鸿蒙”面子和里子大格局
  4. 分享WEBAPP利用纯HTML5实现拨打电话,打开相册,打开摄像头源码
  5. camunda流程定义表无数据_[Python04] 学习snakemake,三步轻松搭建生信流程!
  6. java约瑟夫环迭代器_Josephus约瑟夫环问题的不同实现方法与总结
  7. DDD 领域驱动设计落地实践:六步拆解 DDD
  8. odoo13 订单模板设置_免费开源ERP Odoo 13系统E-mail邮件功能设置操作指南
  9. vc 调试mysql_MySQL数据库的安装调试和VC实现
  10. ProFile配置节属serializeAs
  11. matlab改变示波器颜色,[转载]matlab/simulink 示波器颜色设置
  12. react - next.js 引用本地图片和css文件
  13. 誉赐 PC阳光板www.ycpc.icoc.cn/详尽概述
  14. 忍不住笑的笑话(last:20180419)
  15. 客户关系管理理论 期末复习
  16. xshell中文问号乱码
  17. notepad黑色主题
  18. pm2.5计算和单位换算
  19. 求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)
  20. 【云游戏】携手云流送,让普通终端也可畅享高端游戏画质

热门文章

  1. MLX90614修改地址
  2. 使用Proteus软件制作温控风扇电路仿真
  3. 申请SSL证书,并给域名配置SSL证书,并部署服务器;SSL证书的下载和安装
  4. 最具潜力的人工智能机器人玩具(2019年更新)
  5. 《机器人爱好者(第1辑)》——机器人和人工智能
  6. 关键词搜索排行榜-精准找到行业流量关键词
  7. 快速由WP8升级到WP8.1
  8. 来自 Repository 的一丝线索,Domain Model 再重新设计
  9. Web 网站架构的演变历程
  10. ffmpeg安装之mac安装