java斗地主案例_Java斗地主案例
package com.chunzhi.Test04Poker;
import java.util.ArrayList;
import java.util.Collections;
/*
斗地主综合案例:
1.准备牌
2.洗牌
3.发牌
4.看牌
*/
public class DouDiZhu {
public static void main(String[] args) {
// 1.准备牌
// 定义一个储存54张牌的ArrayList集合,泛型使用String
ArrayList poker = new ArrayList<>();
// 定义两个数组,一个数组储存牌的花色,另一个数组储存牌的序号
String[] colors = {"♠", "♥", "♣", "♦"};
String[] numbers = {"2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3"};
// 先把大王、小王储存到poker集合中
poker.add("大王");
poker.add("小王");
// 循环嵌套遍历两个数组,组装52张牌
for (String number : numbers) {
for (String color : colors) {
// System.out.println(color + number);
// 把组装好的牌存储到poker当中
poker.add(color + number);
}
}
// System.out.println(poker);
/*
2.洗牌
使用集合的工具类Collections中的方法
static void shuffle(List> list) 使用默认随机源对指定列表进行置换
*/
Collections.shuffle(poker);
// System.out.println(poker);
/*
3.发牌
*/
// 定义四个集合,储存玩家的牌和底牌
ArrayList player1 = new ArrayList();
ArrayList player2 = new ArrayList();
ArrayList player3 = new ArrayList();
ArrayList diPai = new ArrayList();
/*
遍历poker集合,获取每一张牌
使用poker集合的索引%3给3个玩家轮流发牌
剩余3张牌给底牌
注意:
先判断底牌(i >= 51)
*/
for (int i = 0; i < poker.size(); i++) {
// 获取每一张牌
String p = poker.get(i);
// 轮流发牌
if (i >=51) {
// 给底牌发牌
diPai.add(p);
} else if (i%3 == 0) {
// 给玩家1发牌
player1.add(p);
} else if (i%3 == 1) {
// 给玩家2发牌
player2.add(p);
} else if (i%3 == 2) {
// 给玩家3发牌
player3.add(p);
}
}
/*
4.看牌
*/
System.out.println("周星驰:" + player1);
System.out.println("周润发:" + player2);
System.out.println("刘德华:" + player3);
System.out.println("底牌:" + diPai);
}
}
java斗地主案例_Java斗地主案例相关推荐
- java程序设计案例_Java程序设计案例教程
第1章 Java概述 1.2 本章学习方法指导 1.2 知识概要 1.2.1 Java语言的发展及特点 1.2.2 Java工作原理 1.2.3 Java运行环境 1.3 典型案例 1.3.1 案例1 ...
- java水印图片_JAVA实用案例之图片水印开发
写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...
- 斗地主Java课程设计_Java斗地主发牌课程设计
本文实例为大家分享了Java斗地主发牌的具体代码,供大家参考,具体内容如下 Player类 public class Player { // 玩家姓名 private String name1; pr ...
- java斗地主发牌_java斗地主发牌程序
importjava.util.Random;classCard{privateStringface;//牌的面值privateStringsuit;//牌的花色publicCard(Stringca ...
- futuretask java 并发请求_Java并发案例04---Future和 FutureTask
4.Future和 FutureTask 4.1 Future是Callable的返回结果. 它有三个功能 1.判断任务是否完成 2.能够中断任务 3.能够获取任务返回结果 4.2 FutureTas ...
- java dvd 管理_Java学习案例一:DVD管理器
1 importjava.text.ParseException;2 importjava.text.SimpleDateFormat;3 importjava.util.Date;4 importj ...
- java练习案例_Java项目案例之---常用工具类练习
常用工具类练习 1. 请根据控制台输入的特定日期格式拆分日期,如:请输入一个日期(格式如:**月**日****年),经过处理得到:****年**月**日 importjava.util.Scanner ...
- java语言基础(七):Collection、泛型、案例:斗地主
目录 主要内容 教学目标 一.Collection集合 1.1 集合概述 1.2 集合框架 1.3 Collection 常用功能 二. Iterator迭代器 2.1 Iterator接口 2.1. ...
- java案例-实现斗地主游戏案例
java案例-实现斗地主游戏案例 1.需求分析: 模拟斗地主游戏,利用集合,Map实现斗地主的逻辑,并且可以看分派好的牌 2.具体实现: (1)在牌盒(字符串数组)存储四个花色: String[] c ...
- java项目斗地主介绍_详解java_ 集合综合案例:斗地主
案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 案例分析 1.准备牌: 牌可以设计为一个Array ...
最新文章
- 从0到1:CTFer成长之路
- www.pythonchanlleges.com
- Hive集成Tez引擎跑任务出现的问题(Java heap space问题)
- 真的,太多人辜负了.NET5!
- 同期两篇 Nature:运行温度高于 1K 的量子计算平台问世!
- Eclipse中修改SVN地址
- 随机变量的特征函数的定义
- NOPI将数据导出至EXCEL表格
- 51单片机(AT89S52)设计简单计算器(4位加减乘除)
- 8个问题看你是否真的懂 JS
- python database is locked_sqlite3.OperationalError: database is locked
- 小米平板2,Windows10与Android互刷教程,小米平板2 线刷教程
- 健身健美补剂之蛋白粉
- 如何在Word中重置用户选项和注册表设置
- 什么叫手机或设备的ID
- 肝脏~卧则回血,坐立向外供血
- 百度搜索结果页url参数详解
- 悟空“崛起”,《黑神话:悟空》或成为国产3A大作里程碑
- vue中引入echart图及遇到的问题记录
- sharemouse切窗口就锁定了什么原因_使各大网课软件监控功能和锁定功能“失效”...
热门文章
- 华为语音解锁设置_华为手机语音唤醒解锁 华为语音助手解锁屏幕
- 基于SSH的在线问卷调查系统的设计与实现
- MindManager 2020免费序列号激活下载及怎样运用思维导图进行头脑风暴教程
- JS 页面繁简字转换
- pythonopencv人脸相似度_OpenCV3与深度学习实例:Dlib+VGG Face实现两张脸部图像相似度比较...
- 容联七陌×惠州燃气丨用服务之光,点燃美好生活
- OpenCV 安装配置 Jupyter Notebook
- CMake 编译静态库和动态库
- FFmpeg系列-2-命令行工具之FFmpeg
- 一键轻松去除抖音火山等短视频水印~