在?三缺一,来斗个地主——肝个斗地主案例(java)
在?三缺一,来斗个地主
*手动狗头 *
模拟斗地主升级版,通过程序实现斗地主过程中的洗牌、发牌和看牌,要求:对牌进行排序
- 思路:
1.创建HashMap,键是编号,值是牌
2.创建ArrayList,存储编号
3.创建花色数组和点数数组
4.从0开始往HashMap里面存储编号,并存储对应的牌。同时往ArrayList里面存储编号
5.洗牌(洗的是编号),用Collections的shuffle()方法去实现
6.发牌(发的也是编号,为了保证编号是排序的,创建TreeSet集合接收)
7.定义方法看牌(遍历TreeSet集合,获取编号,到HashMap集合找对应的牌)
8.调用看牌方法
- 思路:
package king03;import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;public class PokerProDemo {public static void main(String[] args) {
// 创建HashMap,键是编号,值是牌HashMap<Integer, String> hm = new HashMap<Integer, String>();
// 创建ArrayList,存储编号ArrayList<Integer> array = new ArrayList<Integer>();// 创建花色数组和点数数组String[] colors = {"◆", "♠", "♥", "♣"};String[] numbers = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};// 从0开始往HashMap里面存储编号,并存储对应的牌。同时往ArrayList里面存储编号int index = 0;for (String number : numbers) {for (String color : colors) {hm.put(index, color + number);array.add(index);index++;}}hm.put(index, "小王");array.add(index);index++;hm.put(index, "小王");array.add(index);// 洗牌(洗的是编号),用Collections的shuffle()方法去实现Collections.shuffle(array);// 发牌(发的也是编号,为了保证编号是排序的,创建TreeSet集合接收)TreeSet<Integer> xmSet = new TreeSet<Integer>();TreeSet<Integer> xhSet = new TreeSet<>();TreeSet<Integer> wkSet = new TreeSet<>();TreeSet<Integer> dpSet = new TreeSet<>();for (int i = 0; i < array.size(); i++) {int x = array.get(i);if (i >= array.size() - 3) {dpSet.add(x);} else if (i % 3 == 0) {xmSet.add(x);} else if (i % 3 == 1) {xhSet.add(x);} else if (i % 3 == 2) {wkSet.add(x);}}
// 调用看牌的方法lookPoker("小明", xmSet, hm);lookPoker("小红", xhSet, hm);lookPoker("悟空", wkSet, hm);lookPoker("底牌", dpSet, hm);}// 看牌的方法public static void lookPoker(String name, TreeSet<Integer> ts, HashMap<Integer, String> hm) {System.out.println(name + "的牌是");for (Integer key : ts) {String poker = hm.get(key);System.out.print(poker + "");}System.out.println();}}
写在最后
为了写成这个小案例,我也是懵逼了,太菜了,写到零点多,就想看看谁叫地主会赢,哈哈~~~~~~~~~~
相关文章:

RK3399 BOX编译步骤
1、U-Boot编译: make rk3399_box_defconfig make ARCHVaarch64 生成trust.img、 RK3399MiniLoaderAll_V1.05.bin、 uboot.img; 2、Kernel编译: make ARCHarm64 rockchip_defconfig(make ARCHarm64 sunny_rk3399_defconfig) make ARCHarm64 rk…

小型星形网络结构设计示例
<?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" />以下内容摘自笔者编著的《网络工程师必读——网络系统设计》一书: 上节介绍的是网络形成后,由LAN MapShot 2.0自动发现网络拓扑结构的方法。在网络没…

IOS_多线程_ASI_AFN_UIWebView
H:/0730/00_多线程4种售票_ViewController.h// // ViewController.h // 卖票 // // Created by apple on 13-7-29. // Copyright (c) 2013年 itcast. All rights reserved. //#import <UIKit/UIKit.h>interface ViewController : UIViewController// 多行文本提示框 …

Error:java: 错误: 不支持发行版本 14
Error:java: 错误: 不支持发行版本 14修改全局设置修改module设置在我换了电脑把IDEA的project转移过来之后,开始出现了问题 修改全局设置 修改 Files -> Settings -> Project Structure -> Project -> Project Language Level->选择版本比当前jdk版…

python简说(十五)MD5加密
def my_md5(s): news str(s).encode() m hashlib.md5(news) return m.hexdigest()转载于:https://www.cnblogs.com/wangtingting920416/p/10099896.html

[错误]xstring(525) : warning C4530:
"warning C4530:" 在编译选项中添加上 -GX 就好了,详情参MSDN. 作用:remove _ATL_MIN_CRT Link option

程序模拟电影院窗口卖票,多线程Demo
某电影院目前正在上映国产大片,共有100张票,而它有3个窗口卖票,请设计一个程序模拟该电影院卖票 卖电影票Demo实现步骤1.SellTicket类2.SellTicketDemo测试类3.测试结果4.问题反思4.1 相同的票出现了多次4.2 出现了负数的票实现步骤 1. 定义一…

(C#加密)幻术-大踲无形
首先:我看下面的代码只是知道大概的原理核心算法还是不太清楚~~有清楚的麻烦回复下谢谢咯咯--这也是看Msdn就是把在一个图片上隐藏数据 usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Data;usin…

01 python爬虫
--- 转载于:https://www.cnblogs.com/haima/p/10107708.html

【BZOJ3963】[WF2011]MachineWorks cdq分治+斜率优化
【BZOJ3963】[WF2011]MachineWorks Description 你是任意性复杂机器公司(Arbitrarily Complex Machines, ACM)的经理,公司使用更加先进的机械设备生产先进的机器。原来的那一台生产机器已经坏了,所以你要去为公司买一台新的生产机器。你的任务是在转型期…

金山发布《2006年度信息安全报告》
2006年度,国内的互联网环境因接踵而至的信息安全事件一再掀起了波澜。作为国内领先的信息安全厂商,金山毒霸同数千万国内用户一起见证了对病毒、对流氓软件发出的各种绝技杀手锏。 2007年2月8日,金山软件正式发布了《中国互联网2006年度信息安…

Nginx+Apache Yii2.0 配置方案
最近用Yii2.0框架做了个小项目,虽然项目本身业务逻辑不复杂,但是由于本身业务逻辑的特殊性,在上午9点到12点之间系统访问量会突然上升(浏览量和用户上传文件量)。导致系统单纯的部署在Apache下,支撑不了这么…

RobotFramework下的http接口自动化Set Request Body 关键字的使用
Set Request Body关键字用来设置http 请求时的body 信息,尤其是在post 请求时,经常需要用到这个关键字。 该关键字接收一个参数,[ body ] 示例1:登录博客园(http://www.cnblogs.com/)时,设置登录…

JDK11使用IDEA,配置JavaFX
JDK11使用IDEA,配置JavaFX1.下载javaFX相关的包2.在实际Demo中试验哪里少了添加哪里导入lib文件夹,之后点击OK配置VMoption配置成功3.运行,大功告成1.下载javaFX相关的包 需要下载对应的包,进入openjfx.cn网站下载 https://gluon…

写了一个PPT,用于公司内部培训
匆忙写成,以后会慢慢补充请用力一击中等规模的并发程序设计http://files.cnblogs.com/jobs/2007-5-9-concurrent-ppt.rar2007-5-10修改版(带参考文档)http://files.cnblogs.com/jobs/2007-5-10-concurrent-ppt.rar转载于:https://www.cnblogs…

终端bash美化(FC)
终端bash美化(FC) 用Linux也已经一年多了,感觉几乎还是什么都不会。大概是一直再做一些没多大意义的事的缘故吧,就像今天些的内容一样。以前搞了一段时间的GENTOO,发现里面的bash提示(也就是[userhostname directory]$…
List and ArrayList
List<> and ArrayList Class DiagramsUsing the Bit Complement of the BinarySearch() Result代码1using System; 2using System.Collections.Generic; 3class Program 4{ 5 static void Main() 6 { 7 List<string> list new List<string>();…

spring boot jpa 整合
1,Eclipse JPA Tool配置 https://www.cnblogs.com/wgslucky/p/10109300.html 2,项目地址 https://gitee.com/wgslucky/springboot-jpa 转载于:https://www.cnblogs.com/wgslucky/p/10109869.html

安装JDK1.8+环境配置
安装JDK1.8环境配置1.下载JDK2.安装JDK3.环境配置3.1 新建系统变量3.2 添加Path路径3.3 使用cmd命令行验证是否环境配置成功1.下载JDK 直接官网下载:http://www.oracle.com 下载链接https://www.oracle.com/java/technologies/javase-downloads.html#JDK8 选择自己…

Nodejs.热部署方法
在开发中我们修改了一点代码后要去重启服务器才能看到结果,为了省去这个过程我们以往经常使用热部署代码的方法 下面是使用“supervisor”来达到热部署能力的方法: sudo npm install -g supervisor #安装 supervisor app.js #启动 如果碰到如下提示, 则表示路径没…

SortedList 泛型类
SortedList 泛型类 请参见 示例 成员 全部折叠 全部展开 语言筛选器: 全部 语言筛选器: 多个 语言筛选器: Visual Basic 语言筛选器: C# 语言筛选器: C语言筛选器: J# 语言筛选器: JScri…

中国现代化进程专题讲座——有感
最近有上段治文老师的中国现代化进程这门课,感觉受益颇多。 从国外到国内,从古代到如今,讲论点、论据,评论历史人物、历史事件,讲的很宏大,很深刻。我并没有特意捧他,而是深深被其思想的深刻、言…

java运行出现JNI错误,JDK8和JDK11都安装了
java运行出现JNI错误,JDK8和JDK11都安装了1. 问题描述2. 尝试办法3. 解决办法3.1 解决方法:3.2 测试结果成功1. 问题描述 因为编程的需要,所以我安装了JDK8和JDK11,在安装好了之后配置好了环境变量,之后打开Eclipse的…

爱不释手(Typingfaster)1.78beta,重大升级,欢迎试用,期待反馈。
爱不释手1.78测试版主要有以下改进:1、改进内核,大幅度提高了屏显速度;2、增加文章分段显示功能;3、增加每秒按键次数统计;4、测试结果中划分了实际速度与名义速度,即实际速度=名义速度准确率&a…

php 网站内容采集器 Snoopy
Snoopy转载于:https://www.cnblogs.com/buxiangxin/p/7245580.html

[转]笑话: 耐力惊人的三只乌龟
某日,龟爸、龟妈、龟儿子三只乌龟,决议去郊游。带了一个山东大饼,和两罐海底鸡出发到XX山去。 苦爬十年,终於到了。席地而坐,卸下装备,准备进食。****~~~该死!!没带开罐器࿰…

如何解决代码中if…else 过多的问题
前言 if...else 是所有高级编程语言都有的必备功能。但现实中的代码往往存在着过多的 if...else。虽然 if...else 是必须的,但滥用 if...else 会对代码的可读性、可维护性造成很大伤害,进而危害到整个软件系统。现在软件开发领域出现了很多新技术、新概念…

Facial keypoints detection Kaggle 竞赛系列
3.2# Facial keypoints detection 作者:Stu. RuiQQ: 1026163725原文链接:http://blog.csdn.net/i_love_home/article/details/51051888该题主要任务是检測面部关键点位置 Detect the location of keypoints on face images 问题表述 在本问题中。要求计算…

Error:java: 无效的源发行版: 11
Error:java: 无效的源发行版: 111.问题描述2.原因查找3.解决办法3.1 打开IDEA的File—Project Structure设置3.2 修改Project SDK为自己想要切换的版本3.3 修改project languang level1.问题描述 在我的电脑中同时安装了JDK8和JDK11,之前本来调试好了的,…

今天看论坛,有这样一句话,深有同感,还是家里好
就像孟宣后来对这个城市的评价:“这里的人活的才像人……就像那么发达国家的小城市,不用背负那么大的生存压力。在北京,如果你每天生活要30个馒头,那么你要挣到200到300个。而在这里,只需要30个馒头就可以了……”转载…