首先,按照斗地主规则,完成洗牌发牌的动作。如图:

具体规则:

  1. 组装54张扑克牌

  2. 将54张牌顺序打乱

  3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。

  4. 查看三人各自手中的牌(按照牌的大小排序)、底牌

  手中扑克牌从大到小的摆放顺序:大王,小王,2,A,K,Q,J,10,9,8,7,6,5,4,3

package com.oracle.demo01;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map; public class Doudizhu {
public static void main(String[] args) {
//定义一个map集合:用来将数字与每一张牌进行对应
Map<Integer, String> pooker=new HashMap<Integer, String>();
//一副54张的牌 ArrayList里边为0-53的数的新牌
ArrayList<Integer> pookerNumber=new ArrayList<>();
//准备花色
String[] color={"♠","♣","♦","♥"};
//准备数字
String[] number={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
int index=2;
for(String n:number){
for(String c:color){
pooker.put(index, c+n);
pookerNumber.add(index);
index++;
}
}
//加入大小王
pooker.put(0, "大王");
pooker.put(1, "小王");
pookerNumber.add(0);
pookerNumber.add(1);
//洗牌
Collections.shuffle(pookerNumber);
System.out.println(pookerNumber);
//创建三个玩家和底牌
ArrayList<Integer> player1=new ArrayList<>();
ArrayList<Integer> player2=new ArrayList<>();
ArrayList<Integer> player3=new ArrayList<>();
ArrayList<Integer> dipai=new ArrayList<>();
//遍历这副洗好的牌,遍历过程中,将牌发到三个玩家和底牌中
for(int i=0;i<pookerNumber.size();i++){
if(i<3){
dipai.add(pookerNumber.get(i));
}else if(i%3==0){
player1.add(pookerNumber.get(i));
}else if(i%3==1){
player2.add(pookerNumber.get(i));
}else if(i%3==2){
player3.add(pookerNumber.get(i));
}
}
//发完牌,对每个人手中的牌排序
Collections.sort(player1);
Collections.sort(player2);
Collections.sort(player3);
Collections.sort(dipai);
//调用方法,看查看牌
look("渣渣辉",pooker, player1);
look("古天乐",pooker, player2);
look("卢本伟",pooker, player3);
look("底牌",pooker, dipai);
}
//创建一个方法,对应数字形式的每个人手中的牌,定义字符串形式的牌
public static void look(String name,Map<Integer, String> pooker,ArrayList<Integer> player){
System.out.print(name+" :");
for(int num:player){
System.out.print(pooker.get(num)+"");
}
System.out.println();
}
}

输出请看 顶部图片

图解:

用Java制作斗地主的更多相关文章

  1. java制作验证码(java验证码小程序)

    手动制作java的验证码 Web应用验证码的组成: (1)输入框 (2)显示验证码的图片 验证码的制作流程: 生成验证码的容器使用 j2ee的servlet 生成图片需要的类: (1) Buffere ...

  2. Java 制作证书(Windows 和Linux)

    一.Windows数字证书 1. 生成数字证书 1.1 进入[%JAVA_HOME%]路径下 cd D:\Program Files\Java\jdk1.8.0_131 1.2 生成证书.一些命令中红 ...

  3. 通过Java实现斗地主

    功能:洗牌,发牌,对玩家手中的牌排序,看牌 package demo06; import java.util.ArrayList; import java.util.Collections; impo ...

  4. java制作甘特图

    今日来做一下甘特图.网上搜到了这个源码,但是导的jar包,并没有给我.swiftganttdemo但是名为swiftgantt制作:所以灵机一动在网上搜到了swiftangantt组件:在组件中找到了 ...

  5. 【数据结构与算法】Java制作一个简单数组类

    bobo老师的玩转算法系列–玩转数据结构 简单记录 文章目录 不要小瞧数组 - 制作一个数组类 1 .使用Java中的数组 数组基础 简单使用 2.二次封装属于我们自己的数组 数组基础 制作属于我们自 ...

  6. java制作验证码

    建立一个web工程

  7. 用java制作日历,想休息的时候看一看离周末还有几天!

    呀!忙碌的每一天,都忘记了明天就是我们愉快周末了.今天没有朋友的闲聊的话,明天处在绷紧的状态呢!还有朋友提到,所有今天来跟大家分享一下用java来编写日历表,累了想休息了的时候,打开看看,还有几天到周 ...

  8. java制作简单的坦克大战

    坦克大战是我们小时候玩红白机时代的经典游戏,看到有不少小伙伴都使用各种语言实现了一下,手痒痒,也使用java做的一个比较简单的坦克大战,主要面向于学过Java的人群,与学了一段时间的人,有利于面向对象 ...

  9. java制作图片水印

    1.创建缓存图片对象 2.创建Java绘图工具对象 3.将原图绘制到缓存图片对象 4.使用工具将水印绘制到缓存图片对象 5.创建图片编码工具类 6.输出缓存图片对象到目标图片文件 BufferedIm ...

随机推荐

  1. 记一次开发CefSharp做浏览器时Facebook广告页支付方式绑定不上Paypal问题

    问题:用CefSharp做浏览器开发.在做Facebook广告页面绑定Paypal支付方式时出现了绑定不上的问题. 让我们来还原问题的步骤: 第一步登录Facebook. 第二步进入广告绑卡页面选择P ...

  2. 那些非cmake生成的VTK工程存在的让人崩溃的坑

    由于cmake和IDE的一些编译选项不同,所以导致我们使用者需要多做一些事情.而且vtk官方也表示: If you are not using CMake to compile your code, ...

  3. 从连接器组件看Tomcat的线程模型——BIO模式

    在高版本的Tomcat中,默认的模式都是使用NIO模式,在Tomcat 9中,BIO模式的实现Http11Protocol甚至都已经被删除了.但是了解BIO的工作机制以及其优缺点对学习其他模式有有帮助 ...

  4. 学会Markdown不仅可以用来编写文档,还可以制作自己的简历,真香!

    程序员的简历要简洁明了,不要太多花哨的修饰,突出重点即可,使用markdown就可以很好的满足写一份简历的需求 Markdown 简历模板 这里我贡献一下我自己的markdown简历模板,简历效果如下 ...

  5. 不懂DevOps!他在升职加薪的那天下午,提出了离职

    不久前我们一个已毕业的学员向班主任老师分享了前几天他遇到的一件事: 一个许久未联系他的朋友突然打电话给他,寒暄了几句后突然说,想来北京找工作,问能不能帮忙给介绍一些工作. 在接下来的通话中,我们学员了 ...

  6. Ordinary - 官方原版软件下载站

    官网:http://a-1.vip/exe/

  7. Shell基本语法---shell数组

    shell数组 arr=( ) #定义数组 echo ${#arr[*]} #打印数组长度 echo ${arr[]} #打印数组的第一个成员 echo ${arr[]} #打印数组的二个成员 ech ...

  8. spring boot 整合 ehcache

    1. 该说的话 每个人都应当学会独立地去思考.去寻找答案,而不是一味地伸手向他人索取所谓的标准答案. 首先,别成为"拿来主义"者,其次远离"拿来主义"的人. 2 ...

  9. 性能测试必备知识(5)- 深入理解“CPU 上下文切换”

    做性能测试的必备知识系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1806772.html 前言 上一篇文章中,举例了大量进程等待 CP ...

  10. IDEA中配置Project Structure

    本文主要介绍在IDEA中怎么配置项目Project Structure. 若文中有所偏错,望能够留言指正,不胜感激. 不再赘述,直接进入正题: 1. 打开IDEA的Project Structure( ...