集合框架练习—使用JAVA语言模拟斗地主洗牌、发牌并对牌进行排序案例代码。
未排序前:
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语言模拟斗地主洗牌、发牌并对牌进行排序案例代码。相关推荐
- Java实现模拟斗地主洗牌、发牌、看牌并排序
1.模拟斗地主洗牌.发牌.看牌 /* * 模拟斗地主洗牌.发牌.看牌*/package PokerDemo;import java.util.ArrayList; import java.util.C ...
- Java实现模拟斗地主洗牌发牌
按照斗地主的规则,完成洗牌发牌看牌的动作.最终结果预计为: 具体规则: 1.组装54张扑克牌 2.将54张扑克牌顺序打乱 3.三个玩家参与游戏,三人交替摸牌,每人17张,最后三张做底牌 4.查看三人手 ...
- Java——集合(模拟斗地主洗牌和发牌进行排序)
//改进版,没有进行按牌的地位从小到大排序 package com.yy.test;import java.util.ArrayList; import java.util.Collections;p ...
- 18.集合框架(Map集合,HashMap和Hashtable的区别,Collections(集合工具类),集合练习,模拟斗地主(洗牌,发牌,看牌))
1.Map集合概述和特点 1.需求: 根据学号获取学生姓名 2.Map接口概述 查看API可以知道: 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能 ...
- java中Map集合、模拟斗地主洗牌发牌、JDK9对集合添加的优化
1.1 Map集合概述 Map集合概述 Map==>映射(一个对应一个) Map是一个接口,只要实现了该接口的类都是双列集合. 双列集合每次存储元素时都需要存储两个元素,一个元素称为键,一个元素 ...
- Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO
Java基础知识第二讲(Java编程规范/JVM/集合框架/异常体系/Java反射/语法知识/Java IO/码出高效) 分享在java学习及工作中,常使用的一些基础知识,本文从JVM出发,讲解了JV ...
- java二级考试简单应用题,计算机二级考试Java语言模拟考试(2)
计算机二级考试Java语言模拟考试(2) 一.基本操作题 本题求一个实数37.13的整数部分和小数部分,并打印输出. public class javal{ public static void ma ...
- java语言模拟_Java语言模拟操作系统.doc
河北大学2010级操作系统课程设计论文 PAGE PAGE 27 装订线 装 订 线 (指导教师用表) 学 生 姓 名 指 导 教 师 论文(设计)题目 Java语言模拟操作系统 主要研究 (设计)内 ...
- 模拟斗地主洗牌发牌-JAVA
1.1案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1.组装54张扑克牌 2.将54张牌顺序打乱 3.三个玩家参与游戏,三人交替摸牌,,每人17张牌,最后三张留作底牌. 4.查看三人各 ...
最新文章
- 干掉visio,这个画图神器真的绝了!!!
- WPC大会新动态:合作伙伴采纳Windows Azure
- nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
- 嵌入式笔录(3)-电容,频率与幅度基础
- 服务器如何导入数据库文件格式,服务器如何导入数据库文件格式
- nodejs里socket.on和socket.once的单步调试
- 嵌入式Linux LED,键盘,AD驱动程序开发
- python专题-读取xml文件
- jquery 时间相减获取天数_JQuery Datepicker实现JavaScript日期相减的小例子
- PHP5应用实例详解
- 复杂的三元转化为if() eles()
- 基于NXP iMX8测试Secure Boot功能部署
- Lottie动画的优劣及原理
- 智能电视软件安装(WIFI上网)
- 记录一次keil调试过程:自动识别GPS厂家芯片
- 2022年河北省高职单招(职业倾向性)考试冲刺试题及答案
- 使用Apache poi生成excel并绘制折线统计图,扇形统计图
- Android sockot连接打印机EPSON ESC/POS指令打印
- 计算机二级考试内容是什么
- 必收藏的实用网站(一)