使用Java实现简单的斗地主案例
使用Java实现简单的斗地主案例
案例说明:使用Java实现简单的斗地主洗牌发牌的操作;
具体规则:
共有54张牌,顺序打乱;
三个玩家参与游戏,三人交替摸牌,每人17张牌,最后留三张为底牌(地主牌)。
具体代码实现步骤:
扑克牌准备操作
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class PokerGame {
public static void main(String[] args) {
//定义扑克牌的花色以及数字的数组
String[] flower = {"♥️","♠️","♣️","♦️"};
String[] numbers = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
//创建牌组集合
List poker = new ArrayList();
//组合扑克牌样式
//拿出每一个花色,然后跟每一个数字进行结合,储存在牌组中
for (int i = 0; i < flower.length; i++) {
for (int j = 0; j < numbers.length; j++) {
poker.add(flower[i].concat(numbers[j]));
}
}
//添加大小王到牌组集合中
poker.add("大王");
poker.add("小王");
//打印输出所有扑克牌测试
System.out.println(poker);
//定义三个玩家和地主牌的集合
List player1 = new ArrayList();
List player2 = new ArrayList();
List player3 = new ArrayList();
List dizhupai = new ArrayList();
//洗牌操作,使用shuffle方法
Collections.shuffle(poker);
System.out.println(poker); //测试牌有没有被打乱
//发牌操作
for (int k = 0; k<poker.size() ; k++) {
//留出三张牌存到底牌的集合中
if (k > 50) {
dizhupai.add(poker.get(k));
} else if (k % 3 == 0) {
player1.add(poker.get(k));
} else if (k % 3 == 1) {
player2.add(poker.get(k));
} else if (k % 3 == 2) {
player3.add(poker.get(k));
}
}
//最终看牌操作
System.out.println("玩家一的牌"+player1);
System.out.println("玩家二的牌"+player2);
System.out.println("玩家三的牌"+player3);
System.out.println("地主牌"+dizhupai);
}
}
结果展示
玩家一的牌:[♥️9, ♠️A, ♠️5, ♥️A, ♥️2, ♥️10, ♠️7, ♣️J, ♥️3, ♠️2, ♣️5, ♦️2, ♠️6, ♥️7, ♦️K, ♣️9, 大王]
玩家二的牌:[♦️9, ♠️4, ♣️4, ♣️10, ♥️J, ♦️4, ♥️8, ♥️5, ♦️A, ♣️A, ♦️7, ♦️3, ♦️Q, ♣️K, ♥️6, ♣️3, ♠️Q]
玩家三的牌:[♣️Q, ♣️2, ♣️8, ♣️7, ♥️Q, ♦️10, ♠️8, ♣️6, ♥️4, ♠️10, 小王, ♥️K, ♠️3, ♦️8, ♦️6, ♠️K, ♠️J]
地主牌:[♠️9, ♦️5, ♦️J]
使用Java实现简单的斗地主案例的更多相关文章
- java websocket 简单使用【案例】
现很多网站为了实现即时通讯,所用的技术都是轮询(polling).轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发 出HTTP request,然后由服务器返回最新的数据给客服端的浏览器.这种 ...
- Java窗体简单登入案例(附带源码)
运行截图 源代码下载地址 https://pan.baidu.com/s/1i82Z_onKdOdPFdfGce5e8Q
- 斗地主案例(利用集合/增强for等技术)
斗地主案例(利用集合/增强for等技术) package Task10; import java.util.ArrayList; import java.util.Collections; publi ...
- java的简单入门,tomcat服务器
Tomcat是一款开源的处理动态非常牛逼的web服务器.是sun公司开发的,在丧尸危机之后被收购了. 安装Tomcat需要的支持安装包 JDK下载:http://www.oracle.com/tech ...
- 《仙剑奇侠传柔情版》Java的简单实现(二)
基于<仙剑奇侠传柔情版>Java的简单实现(二) 2018-12-02 by Kris 需要上次的GameFrame.class中窗口框架承载:https://www.cnblogs.co ...
- 基于《仙剑奇侠传柔情版》利用Java的简单实现(一)
基于<仙剑奇侠传柔情版>利用Java的简单实现(一) 2018-12-01 23:55:36 by Louis 一,新建一个类GameFrame.class,具体代码如下: pack ...
- Java实现简单版SVM
Java实现简单版SVM 近期的图像分类工作要用到latent svm,为了更加深入了解svm,自己动手实现一个简单版的. 之所以说是简单版,由于没实用到拉格朗日,对偶,核函数等等.而 ...
- java实现简单的单点登录
java实现简单的单点登录 摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中.本文从业务的角度分析了单点登录的需求和应用领域:从技术本身的角度分析了单点登录技术的内部机制和实现 ...
- Java自定义简单标签
Java自定义简单标签可以方便的在页面输出信息,并且对于权限的控制,和对于Jsp标签和servlet代码的分离有着很好的作用. 下面将以权限的控制为例自定义一个标签: 一.标签类型 <wxt: ...
随机推荐
- 【spring 国际化】springMVC、springboot国际化处理详解
在web开发中我们常常会遇到国际化语言处理问题,那么如何来做到国际化呢? 你能get的知识点? 使用springgmvc与thymeleaf进行国际化处理. 使用springgmvc与jsp进行国际化 ...
- G - Messy codeforces1262C
题目大意: 输入n和m,n是n个字符,m是m个前缀.对前缀的规定可以配对的括号.比如(),,((()))等等.在输入n个括号字符,对这个n个字符,通过交换使其满足m个前缀.交换次数不限,规则想当与re ...
- vue2.x学习笔记(二十二)
接着前面的内容:https://www.cnblogs.com/yanggb/p/12633051.html. 自定义指令 简介 除了核心功能默认内置的指令([v-mode]和[v-show]等),v ...
- 开始appium的第一个脚本
设置DesiredCapabilities 存在于以下库中: org.openqa.selenium.remote.DesiredCapabilities Desired Capabilities告诉 ...
- TeamViewer11 万全免费
下载地址:百度网盘 c4xm TeamViewer 是一款简单易用且功能强大的远程控制软件,它能穿越内网,摆脱路由器或防火墙的限制,任何一方都不需要拥有固定IP地址.让不懂技术的朋友也能远程控制电脑, ...
- tp5--model的坑
先上代码: class Article extends Model { //获取全部文章 public function getArticleAll($id,$page) { $cate = new ...
- php header() 常用content-type
//定义编码 header( 'Content-Type:text/html;charset=utf-8 '); //Atom header('Content-type: application/at ...
- docker commit理解构建镜像(7)
镜像是多层存储,每一层是在前一层的基础上进行的修改: 而容器同样也是多层存储是在以镜像为基础层,在基础层上加一层作为容器运行时的存储层. 当我们使用Docker Hub的镜像无法满足我们的需求时,我们 ...
- Phaser都不懂,还学什么多线程
前面的文章中我们讲到了CyclicBarrier.CountDownLatch的使用,这里再回顾一下CountDownLatch主要用在一个线程等待多个线程执行完毕的情况,而CyclicBarrier ...
- Eureka重点原理解析
前言 带着问题学习,事半功倍.本文将对如下几个问题进行总结说明: 1.EurekaServer端服务注册的流程和设计模式 2.Eureka服务续约的bug 3.EurekaClient的启动流程 4. ...