java洗牌_java语言实现简单的洗牌,发牌
packagecom.java.lei.homework;importjava.util.Arrays;importjava.util.Random;public classPokerGame {//1.创建数组,用以存储扑克牌
static String[] pokers = new String[54];public static voidmain(String[] args) {//2.创建牌 所有的牌赋值到array数组中
pokers =newPoker();//3.洗牌 这里的实参pokers是经过创建牌之后新生成的pokers
String[] pokers2 =upsetPoker(pokers);//4.发牌
sendPoker(pokers2);
}//创建牌的方法
public staticString[] newPoker() {//1.定义花色数组
String[] colors = {"红桃","黑桃","梅花","方片"};//2.定义牌面数组
String[] numbers = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};//3.定义王
String[] kings = {"大王","小王"};//4.使用循环将牌存储到pokers数组
int index = 0;for(int i = 0 ; i < numbers.length ; i ++) {for(int j = 0 ; j < colors.length ; j ++) {
pokers[index++] = colors[j] +numbers[i];
}
}//5.大小王拷贝入pokers数组
System.arraycopy(kings, 0, pokers, index, 2);//6.输出牌
System.out.println("现有一副扑克牌" + Arrays.toString(pokers) + "\n");returnpokers;
}//洗牌的方法
public staticString[] upsetPoker(String[] array) {//1.定义新的数组,用以存储洗好的牌
String[] newpokers = newString[pokers.length];//2.定义数组,用以标识被随机取出的牌
boolean[] mark = new boolean[pokers.length];//3.洗牌
for(int i = 0 ; i < pokers.length ; i ++) {//a.创建随机数
Random rd = newRandom();//b.获取随机数的下标
int index =rd.nextInt(pokers.length);//c.判断标识
if(mark[index] == false) {//d.将未洗过的牌存储入newpokers
newpokers[i] =pokers[index];//e.修改标识,被洗过的牌标记为true
}else{
i--; //该次取随机数取到的是洗过的牌,则重新再取一次
}
}//newpokers内的牌拷贝到数组pokers
pokers =Arrays.copyOf(newpokers, newpokers.length);
System.out.println("洗过的牌:" + Arrays.toString(newpokers)+"\n");returnnewpokers;
}//发牌的方法
public static voidsendPoker(String[] array) {//1.定义玩家及底牌数组
String[] one = new String[0];
String[] two= new String[0];
String[] three= new String[0];
String[] underpoker= new String[3];//2.循环进行发牌
for(int i = 0 ; i < pokers.length-3 ; i++) {if(i % 3 == 0) {
one= Arrays.copyOf(one, one.length+1);
one[one.length-1] =pokers[i];
}else if(i % 3 == 1) {
two= Arrays.copyOf(two, two.length+1);
two[two.length-1] =pokers[i];
}else if(i % 3 == 2) {
three= Arrays.copyOf(three, three.length+1);
three[three.length-1] =pokers[i];
}
}
System.arraycopy(pokers, pokers.length-3, underpoker, 0, 3);
System.out.println("玩家1:" +Arrays.toString(one));
System.out.println("玩家2:" +Arrays.toString(two));
System.out.println("玩家3:" +Arrays.toString(three));
System.out.println("底牌:" +Arrays.toString(underpoker));
}
}
java洗牌_java语言实现简单的洗牌,发牌相关推荐
- JAVA中调用C语言函数简单教程
背景知识 本地代码 在JAVA中使用其他语言的代码(如C/C++)称为本地代码. 历史原因 JAVA的早期阶段,很多人认为使用C和C++来加速JAVA应用中的关键部分是个好主意,但是实际上,虽然JAV ...
- java生日正则表达式_Java语言十五讲
前言 每年技术媒体都会评选最受欢迎的编程语言,Java总是高居前位.自然,没有办法说一个语言绝对比另一种语言好,这个话题一如既往地会引起大家无谓的争论不休.对别的行业的人来讲也许会觉得莫名其妙,但是对 ...
- java未来发展潜力_Java语言未来是否还有发展前景
首先,从当前Java语言的技术布局情况和行业应用情况来看,未来在较长一段时间内,Java语言都将是IT互联网行业内非常重要的编程语言之一,而且由于Java语言在大数据.云计算和物联网等领域也都有比较广 ...
- java 条件匹配_java语言实现满足多条件匹配简单过滤输出问题
展开全部 package zhidao; import java.io.File; import java.io.FileWriter; import java.io.IOException; imp ...
- java关闭ftp 连接_Java语言实现简单FTP软件------gt;连接管理模块的实现:主机与服务器之间的连接与关闭操作(八) - 移动编程 - ITeye博客...
(1)FTP连接 运行FTP客户端后,首先是连接FTP服务器,需要输入FTP服务器的IP地址及用户名.密码以及端口号后点击连接按钮开始连接FTP服务器,连接流程图如下图所示. 点击"连接&q ...
- 在java中 int类型对应的包装类是_Java语言对简单数据类型进行了类包装,int对应的包装类是______。...
c__d 贺卡 ()特效是由两部分组成,一部分是调整,一部分是画面控制. What do people in Tokyo love eating? "一国两制"是一个完整的概念,其 ...
- java实现ftp协议_Java语言实现简单FTP软件 FTP协议分析(1)
FTP(File Transfer Protocol)就是文件传输协议.通过FTP客户端从远程FTP服务器上拷贝文件到本地计算机称为下载,将本地计算机上的文件复制到远程FTP服务器上称为上传,上传和下 ...
- java小知识_java小知识点简单回顾
1.java的数据类型分为两种:简单类型和引用类型(数组.类以及接口).注意,java没有指针的说法,只有引用.简单类型的变量被声明时,存储空间也同时被分配:而引用类型声明变量(对象)时,仅仅为其分配 ...
- java foreach用法_Java十大简单性能优化
以下是Java中最容易进行的10个性能优化: 1.使用StringBuilder 这几乎是所有Java代码中的默认设置.尽量避免+操作员.当然,您可能会争辩说它StringBuilder无论如何都是语 ...
最新文章
- 2021全球开放数据应用创新大赛开启,300万+奖金等你来拿!
- 一步一步SharePoint 2007之十七:解决实现Form认证后无法再用SharePoint Designer编辑网站的问题...
- 特征级融合_更丰富的卷积特征用于目标边缘检测(文末附有论文及源码下载)...
- mes建设指南_给予和接受建设性批评的设计师指南
- lambda与内置函数
- 更新和插入的并发问题_mysql经典面试题:如何读写分离?主从原理是啥?同步的延时问题...
- python 逻辑回归准确率是1_python数据分析(三)——逻辑回归之学生成绩预测
- 九年级计算机上册教学总结,九年级信息技术教学工作总结
- linux多cpu运行python脚本,linux系统使用python获取cpu信息脚本分享
- Sprint3(12.18)总结
- DAG最小可重路径覆盖or最长反链的一种做法
- loadrunner使用system()函数调用Tesseract-OCR识别验证码遇到的问题
- [SUCTF 2019]EasyWeb---无参数RCE
- 网络延迟的优化方法-管理延迟
- Chrome浏览器输入不安全站点,没有继续前往链接--解决方案thisisunsafe
- 盘点 11 月份 火火火 的 GitHub 项目
- 如果一笔生意听起来好得让人难以置信
- 2021国家开放大学计算机网络安全技术形成性考核二
- 人脸识别系统的实现与封装
- 3 MySQL数据管理
热门文章
- HTML+CSS+JS实现 ❤️人物走悬崖小游戏❤️
- 《零基础》MySQL 排序(十八)
- kafka 重新分配节点_Kafka扩容节点和分区迁移
- mysql for update场景_一个mysql死锁场景实例分析
- 数据库MySQL入门第一天
- mysql_unbuffered_query的_用mysql_unbuffered_query函数取大数据
- 关于 Taro 的 ScrollView 在Dom结构发生变化会自动回滚到顶部解决方案和原因
- PyCharm 安装插件
- Java 将中缀表达式转换成后缀表达式
- 绘制彩虹html代码,HTML5 Canvas 彩虹螺旋图生成器