java模拟实现斗地主发牌小程序
作者:Apache-Qibao 时间:2021-07-20 01:55:11
一副扑克有54张牌:大小王+4*13,接下来我们来模拟一下斗地主的发牌过程
首先,我们需要买牌,新买来的牌都是按顺序摆放的,因此下一步是洗牌,最后就是发牌了,不过发牌的时候要注意还要在最后留三张底牌。
主要使用的类有 ArrayList:用来存储扑克,Collections用来洗牌。
import java.util.ArrayList;
import java.util.Collections;
/*
* 模拟斗地主发牌 一共54张牌
* 买牌
* 洗牌
* 发牌
*
*/
public class DouDIZhuDemo {
public static void main(String[] args) {
// 花色 数组
String[] arr = { "黑桃", "红桃", "梅花", "方片" };
String[] arr2 = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };
// 买牌
ArrayList<String> box = new ArrayList<String>();
// 添加牌
// 获取花色
for (int i = 0; i < arr.length; i++)
// 获取数值
for (int j = 0; j < arr2.length; j++)
box.add(arr[i] + arr2[j]);
// 大小王
box.add("大王");
box.add("小王");
// 洗牌
Collections.shuffle(box);
// 发牌 三张底牌给地主,剩51张,每人17张
// 三个拿牌打牌的
ArrayList<String> 七宝 = new ArrayList<String>();
ArrayList<String> 八宝 = new ArrayList<String>();
ArrayList<String> 九宝 = new ArrayList<String>();
for (int i = 0; i < box.size() - 3; i++) {
if(i%3==0)
七宝.add(box.get(i));
else if(i%3==1)
八宝.add(box.get(i));
else if(i%3==2)
九宝.add(box.get(i));
}
System.out.println("七宝:"+七宝);
System.out.println("八宝:"+八宝);
System.out.println("九宝:"+九宝);
//底牌
for(int i=box.size()-3;i<box.size();i++)
System.out.println(box.get(i));
}
}
来源:https://blog.csdn.net/skisqibao/article/details/81303824
标签:java,斗地主,发牌
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java Idea TranslationPlugin翻译插件使用解析
2023-12-01 10:25:02
![](https://img.aspxhome.com/file/2023/4/66204_0s.png)
java中的常用集合类整理
2022-08-22 10:35:49
详解三种java实现多线程的方式
2021-11-02 10:09:30
lambda表达式解决java后台分组排序过程解析
2023-11-29 06:03:39
分析Android多主题颜色的相关问题
2023-01-08 09:55:58
![](https://img.aspxhome.com/file/2023/1/88671_0s.png)
Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解
2023-11-23 11:00:58
![](https://img.aspxhome.com/file/2023/2/59382_0s.png)
Java链表中元素删除的实现方法详解【只删除一个元素情况】
2023-01-16 11:49:41
![](https://img.aspxhome.com/file/2023/3/68693_0s.png)
Java获取随机数的3种方法
2022-08-04 02:51:01
SpringBoot项目中遇到的BUG问题及解决方法
2022-01-19 14:44:38
![](https://img.aspxhome.com/file/2023/7/63287_0s.png)
Spring Boot 与 Kotlin 上传文件的示例代码
2022-08-24 10:24:08
SpringBoot搭配AOP实现自定义注解
2022-04-07 01:21:59
idea无法切换分支报错问题及解决
2023-12-14 22:39:26
![](https://img.aspxhome.com/file/2023/2/64552_0s.png)
Java编程接口回调一般用法代码解析
2023-11-11 06:55:11
Java反射概念与使用实例代码
2022-02-24 23:55:40
C# dll代码混淆加密的实现
2022-01-06 17:25:04
![](https://img.aspxhome.com/file/2023/5/91265_0s.jpg)
C#调用SQLite的方法实例分析
2022-09-25 06:02:22
C#嵌套类的访问方法
2021-07-26 18:03:20
详解C#中的定时器Timer类及其垃圾回收机制
2021-07-21 10:57:39
JAVA像SQL一样对List对象集合进行排序
2023-11-01 12:36:24
![](https://img.aspxhome.com/file/2023/8/71258_0s.jpg)
C#控制台实现飞行棋游戏
2022-03-12 04:18:40
![](https://img.aspxhome.com/file/2023/2/94642_0s.jpg)