java程序 扑克牌概率_java扑克牌洗牌程序,求抽可以抽出特定牌的次数
展开全部
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扑克牌洗牌程序,求抽可以抽出特定牌的次数相关推荐
- java怎么实现购物车_java实现网上购物车程序
导读热词 用java代码写一个简单的网上购物车程序,供大家参考,具体内容如下 需求: 1.写一个商品类,有商品编号.商品名称.商品分类.商品单价属性. 2.写一个商品条目信息类,有商品和数量两个属性, ...
- java程序 扑克牌概率_java – 最简单的扑克牌评估算法
这是一个非常简短但完整的基于直方图的5卡扑克评分函数在Python(2.x).如果转换为Java,它会变得更长. def poker(hands): scores = [(i, score(hand. ...
- 扑克牌排序_JAVA 扑克牌排序打印,并进行洗牌
点击上方蓝字关注我们 一.Puke类: 首先定义扑克牌的参数 定义字符串型的花色(color),点数(points)两个有关于扑克牌的参数,且用private关键字进行修饰,被private修饰的后的 ...
- java sleep不能使用_java无主窗口GUI程序主线程不能调用sleep(long)方法,会产生异常...
java无主窗口GUI程序主线程不能调用sleep(long)方法,会产生异常. public class fxframe{ public static void main(String[] args ...
- java里程序控制流程_Java语言中的程序流程控制
(1. 流程控制 有三种基本技术可以改变程序的控制流程: A.调用方法 :将导致控制流程离开当前方法,转移到被调用的方法. B.选择 : a. if / else 语句 b. switch语句 ...
- win7 docker java开发环境变量_java – Docker. Spring应用程序.设置和获取环境变量
我正试图将我的Spring应用程序停靠. 问题: 我无法从我的Spring应用程序中获取docker容器中的环境变量. Spring配置(2个选项,单独试用) 也试过java URI dbUrl = ...
- java程序启动打印_JAVA打印问题:程序正常运行,打印机无反应
我需要打印一份TXT文件,但是运行后程序未出现异常,打印机却没有反应.打印机在其他地方都是正常工作的.求解为什么???打印机型号:GprinterGP-9035T代码:importjava.awt.G ...
- java象棋游戏参考文献_java中国象棋(论文+程序)
java中国象棋(论文+程序) 如有需要请联系 QQ:958035640 目 录 第1章 象棋的由来. ------------------------ 1 第2章 技术可行性分析 --------- ...
- java 背单词系统_java实现背单词程序
本文实例为大家分享了java实现背单词程序的具体代码,供大家参考,具体内容如下 山东科技大学济南校区程序设计 功能要求:可以读入一个单词表文本文件, 能够将背错的单词重复记忆,直到全记住. packa ...
- java计算器简单源代码_java 简单的计算器程序实例代码
java 简单的计算器程序 实现实例: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class C ...
最新文章
- java应用窗口大小_java 如何让程序窗口随屏幕大小改变 | 学步园
- 5G产业发展最新进展深度解析(144页PPT)
- 全球科技大会鸿蒙,华为开发者大会:全球瞩目的“鸿蒙”面子和里子大格局
- 分享WEBAPP利用纯HTML5实现拨打电话,打开相册,打开摄像头源码
- camunda流程定义表无数据_[Python04] 学习snakemake,三步轻松搭建生信流程!
- java约瑟夫环迭代器_Josephus约瑟夫环问题的不同实现方法与总结
- DDD 领域驱动设计落地实践:六步拆解 DDD
- odoo13 订单模板设置_免费开源ERP Odoo 13系统E-mail邮件功能设置操作指南
- vc 调试mysql_MySQL数据库的安装调试和VC实现
- ProFile配置节属serializeAs
- matlab改变示波器颜色,[转载]matlab/simulink 示波器颜色设置
- react - next.js 引用本地图片和css文件
- 誉赐 PC阳光板www.ycpc.icoc.cn/详尽概述
- 忍不住笑的笑话(last:20180419)
- 客户关系管理理论 期末复习
- xshell中文问号乱码
- notepad黑色主题
- pm2.5计算和单位换算
- 求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)
- 【云游戏】携手云流送,让普通终端也可畅享高端游戏画质