java模拟实现斗地主发牌小程序
作者:Apache-Qibao 发布时间:2021-07-20 01:55:11
标签:java,斗地主,发牌
一副扑克有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
0
投稿
猜你喜欢
- 1.分页类package org.zh.basic;/** * 页面类 * * @author keven&
- 前言本文主要给大家介绍了关于Java读取二进制文件的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。读Hex写CS
- 前言使用基于TCP 协议的双向通信时,网络中的两个应用程序之间必须首先建立一个连接,这两个程序通过一个双向的通信连接实现数据的交换,这个连接
- 有序链表:按关键值排序。删除链头时,就删除最小(/最大)的值,插入时,搜索插入的位置。插入时需要比较O(N),平均O(N/2),删除最小(/
- 干java 开发这么多年, 之前一直没留意java 进程还区分守护进程和用户进程。守护进程这个概念最早还是在linux系统中接触的,直到近期
- 最近开发了比较多的接口,因为没有可参考的案例,所以一开始一直按照我的理解进行开发。开发多了发现自己每个结果都写了相同的代码:try() {}
- java 避免出现NullPointerException(空指针)的方法总结Java应用中抛出的空指针异常是解决空指针的最好方式,也是写出
- 本文实例为大家分享了java实现选课系统的具体代码,供大家参考,具体内容如下这个程序主要是练习IO(文件读写,序列化),集合框架的使用学生端
- 在nginx.conf文件的http模块新增以下内容gzip &nbs
- 介绍1.BLE 是 Bluetooth Low Energy 的缩写,意思为低功耗蓝牙。由蓝牙技术联盟(Bluetooth SI
- 之前学习了设计模式原型模式,在原型模式中就提到了对象的深拷贝。深拷贝指的是拷贝一个对象时,不仅仅把对象的引用进行复制,还把该对象引用的值也一
- 一、什么是 websocket 接口使用 websocket 建立长连接,服务端和客户端可以互相通信,服务端只要有数据更新,就可以主动推给客
- 包括了写入和读取功能. 写入的时候, 如果文件不存在会自动创建. 如果对应的键已经存在, 则自动覆盖它的值. 读取的时候, 如果对应的文件不
- 方法引用和构造器引用了解了 Lambda 表达式有一段时间了,但是都没有怎么练习,一直停留在最低层次的了解程度,这对于追求技术进步的人来说确
- 当目标数据库不能直连的,需要一个服务器作为中间跳板的时候,我们需要通过SSH通道连接数据库。ps:使用ssh连接,相当于本地开了个端口去连接
- 前言:项目中我们经常会遇到有时候需要等待其他线程完成任务后,主线程才能执行其他任务,那么我们将如何实现呢?Join 解决方案join 的工作
- QueryWrapper条件构造之apply、last、select场景: 查询数据库限制条数时mysql上的limit使用 Qu
- SpringBoot使用protobuf格式的接口建立SpringBoot项目,pom.xml内容如下:<?xml version=&
- 背景原生的TextView是支持跑马灯效果的,但是在项目中实际用了之后,达不到需求,原因是内容滚动太慢,速度无法调节。因此,需要自定义一个可
- 目录1、基本语法2、标识符(合法的变量名)3、关键字(保留字)4、注释5、Java 包5.1 package 语句5.2 import 语句