未排序前:

package File;import java.util.ArrayList;
import java.util.Collections;public class Poker {/*** 模拟斗地主** @param args*/public static void main(String[] args) {//        买一幅扑克,卡牌点数。String[] num = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
//        四种花色String[] color = {"方片", "梅花", "红桃", "黑桃"};ArrayList<String> poker = new ArrayList<>();
//        两层foreach循环把花色和扑克牌拼接起来。for (String s1 : color) {for (String s2 : num) {poker.add(s1.concat(s2));// 数组中concat拼接方法,意思就是方片A,方片2,方片3,以此类推。}}
//        因为小王和大王和他们没有任何关系,所有单独加上去。poker.add("小王");poker.add("大王");System.out.println(poker.size());
//        下一步洗牌吧。Collections.shuffle(poker);// shuffle方法是洗牌,让54张牌交换位置嘞。
//        System.out.println(poker);
//        洗完后发牌了吧;三个人玩,所以创建三个集合。ArrayList<String> gaojin = new ArrayList<>();// 高进同学的第一个人的牌。ArrayList<String> longwu = new ArrayList<>();// 龙武同学的牌ArrayList<String> me = new ArrayList<>();// 我的牌。ArrayList<String> dipai = new ArrayList<>();//底牌三张//发牌了!for (int i = 0; i < poker.size(); i++) {if (i >= poker.size() - 3) { // 54张牌嘛,最后三张你懂得,如果最后的底牌就添加到底牌集合中。dipai.add(poker.get(i));} else if (i % 3 == 0) { // 0 3 6 9 嘛,就发给高进。gaojin.add(poker.get(i));} else if (i % 3 == 1) { // 4 7 10 13 嘛,就发给龙武同学。。longwu.add(poker.get(i));} else {me.add(poker.get(i));}}
//        有牌了,接下来就是看牌把。System.out.println("高进同学的牌:"+gaojin);System.out.println("龙武同学的牌:"+longwu);System.out.println("我的牌:"+me);System.out.println("底牌:"+dipai);}
}

运行结果:

排序后:

package File;import java.util.*;public class Poker02 {public static void main(String[] args) {//        买一幅扑克,卡牌点数。String[] num = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};//        四种花色String[] color = {"方片", "梅花", "红桃", "黑桃"};HashMap<Integer, String> hm = new HashMap<>();ArrayList<Integer> list = new ArrayList<>();int index = 0;for (String s1 : num) {for (String s2 : color) {hm.put(index,s2.concat(s1));list.add(index);index++;}}hm.put(index,"小王");list.add(index);index++;hm.put(index,"大王");list.add(index);
//        洗牌Collections.shuffle(list);
//        发牌TreeSet<Integer> gaojin = new TreeSet<>();TreeSet<Integer> longwu = new TreeSet<>();TreeSet<Integer> me = new TreeSet<>();TreeSet<Integer> dipai = new TreeSet<>();for (int i = 0; i <list.size() ; i++) {if (i >= list.size() - 3) { // 54张牌嘛,最后三张你懂得,如果最后的底牌就添加到底牌集合中。dipai.add(list.get(i));} else if (i % 3 == 0) { // 0 3 6 9 嘛,就发给高进。gaojin.add(list.get(i));} else if (i % 3 == 1) { // 4 7 10 13 嘛,就发给龙武同学。。longwu.add(list.get(i));} else {me.add(list.get(i));}}
//        看牌lookPoker("高进",gaojin,hm);lookPoker("龙武",longwu,hm);lookPoker("我",me,hm);lookPoker("底牌",dipai,hm);}public static void lookPoker(String name,TreeSet<Integer> ts,HashMap<Integer,String> hm){System.out.println(name+"的牌是:");for (Integer index : ts) {System.out.print(hm.get(index)+" ");}System.out.println();}}

运行结果

集合框架练习—使用JAVA语言模拟斗地主洗牌、发牌并对牌进行排序案例代码。相关推荐

  1. Java实现模拟斗地主洗牌、发牌、看牌并排序

    1.模拟斗地主洗牌.发牌.看牌 /* * 模拟斗地主洗牌.发牌.看牌*/package PokerDemo;import java.util.ArrayList; import java.util.C ...

  2. Java实现模拟斗地主洗牌发牌

    按照斗地主的规则,完成洗牌发牌看牌的动作.最终结果预计为: 具体规则: 1.组装54张扑克牌 2.将54张扑克牌顺序打乱 3.三个玩家参与游戏,三人交替摸牌,每人17张,最后三张做底牌 4.查看三人手 ...

  3. Java——集合(模拟斗地主洗牌和发牌进行排序)

    //改进版,没有进行按牌的地位从小到大排序 package com.yy.test;import java.util.ArrayList; import java.util.Collections;p ...

  4. 18.集合框架(Map集合,HashMap和Hashtable的区别,Collections(集合工具类),集合练习,模拟斗地主(洗牌,发牌,看牌))

    1.Map集合概述和特点 1.需求:    根据学号获取学生姓名 2.Map接口概述     查看API可以知道:     将键映射到值的对象     一个映射不能包含重复的键     每个键最多只能 ...

  5. java中Map集合、模拟斗地主洗牌发牌、JDK9对集合添加的优化

    1.1 Map集合概述 Map集合概述 Map==>映射(一个对应一个) Map是一个接口,只要实现了该接口的类都是双列集合. 双列集合每次存储元素时都需要存储两个元素,一个元素称为键,一个元素 ...

  6. Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO

    Java基础知识第二讲(Java编程规范/JVM/集合框架/异常体系/Java反射/语法知识/Java IO/码出高效) 分享在java学习及工作中,常使用的一些基础知识,本文从JVM出发,讲解了JV ...

  7. java二级考试简单应用题,计算机二级考试Java语言模拟考试(2)

    计算机二级考试Java语言模拟考试(2) 一.基本操作题 本题求一个实数37.13的整数部分和小数部分,并打印输出. public class javal{ public static void ma ...

  8. java语言模拟_Java语言模拟操作系统.doc

    河北大学2010级操作系统课程设计论文 PAGE PAGE 27 装订线 装 订 线 (指导教师用表) 学 生 姓 名 指 导 教 师 论文(设计)题目 Java语言模拟操作系统 主要研究 (设计)内 ...

  9. 模拟斗地主洗牌发牌-JAVA

    1.1案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1.组装54张扑克牌 2.将54张牌顺序打乱 3.三个玩家参与游戏,三人交替摸牌,,每人17张牌,最后三张留作底牌. 4.查看三人各 ...

最新文章

  1. 干掉visio,这个画图神器真的绝了!!!
  2. WPC大会新动态:合作伙伴采纳Windows Azure
  3. nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
  4. 嵌入式笔录(3)-电容,频率与幅度基础
  5. 服务器如何导入数据库文件格式,服务器如何导入数据库文件格式
  6. nodejs里socket.on和socket.once的单步调试
  7. 嵌入式Linux LED,键盘,AD驱动程序开发
  8. python专题-读取xml文件
  9. jquery 时间相减获取天数_JQuery Datepicker实现JavaScript日期相减的小例子
  10. PHP5应用实例详解
  11. 复杂的三元转化为if() eles()
  12. 基于NXP iMX8测试Secure Boot功能部署
  13. Lottie动画的优劣及原理
  14. 智能电视软件安装(WIFI上网)
  15. 记录一次keil调试过程:自动识别GPS厂家芯片
  16. 2022年河北省高职单招(职业倾向性)考试冲刺试题及答案
  17. 使用Apache poi生成excel并绘制折线统计图,扇形统计图
  18. Android sockot连接打印机EPSON ESC/POS指令打印
  19. 计算机二级考试内容是什么
  20. 必收藏的实用网站(一)

热门文章

  1. 大数定律(law of large numbers)
  2. WIN10笔记本电脑任务栏wifi图标消失
  3. 十天学会写PHP动态网站
  4. 欢乐赚php体验站,一个个人站长的做站经历:快乐并坚持着
  5. MPEG2视频编码简介
  6. 软件测试及专业,常用软件及专业软件测试
  7. /tmp文件夹和/var/tmp文件夹的定期清理机制
  8. 无字天书之Python第二页(数据类型和变量)
  9. 给网页添加网站的logo(icon图标)
  10. python简单图画程序_制作一个简单的画图小程序界面