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,斗地主,发牌
0
投稿

猜你喜欢

  • Java Idea TranslationPlugin翻译插件使用解析

    2023-12-01 10:25:02
  • 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
  • Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解

    2023-11-23 11:00:58
  • Java链表中元素删除的实现方法详解【只删除一个元素情况】

    2023-01-16 11:49:41
  • Java获取随机数的3种方法

    2022-08-04 02:51:01
  • SpringBoot项目中遇到的BUG问题及解决方法

    2022-01-19 14:44:38
  • Spring Boot 与 Kotlin 上传文件的示例代码

    2022-08-24 10:24:08
  • SpringBoot搭配AOP实现自定义注解

    2022-04-07 01:21:59
  • idea无法切换分支报错问题及解决

    2023-12-14 22:39:26
  • Java编程接口回调一般用法代码解析

    2023-11-11 06:55:11
  • Java反射概念与使用实例代码

    2022-02-24 23:55:40
  • C# dll代码混淆加密的实现

    2022-01-06 17:25:04
  • 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
  • C#控制台实现飞行棋游戏

    2022-03-12 04:18:40
  • asp之家 软件编程 m.aspxhome.com