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斗地主案例相关推荐

  1. 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 ...

  2. java水印图片_JAVA实用案例之图片水印开发

    写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...

  3. 斗地主Java课程设计_Java斗地主发牌课程设计

    本文实例为大家分享了Java斗地主发牌的具体代码,供大家参考,具体内容如下 Player类 public class Player { // 玩家姓名 private String name1; pr ...

  4. java斗地主发牌_java斗地主发牌程序

    importjava.util.Random;classCard{privateStringface;//牌的面值privateStringsuit;//牌的花色publicCard(Stringca ...

  5. futuretask java 并发请求_Java并发案例04---Future和 FutureTask

    4.Future和 FutureTask 4.1 Future是Callable的返回结果. 它有三个功能 1.判断任务是否完成 2.能够中断任务 3.能够获取任务返回结果 4.2 FutureTas ...

  6. java dvd 管理_Java学习案例一:DVD管理器

    1 importjava.text.ParseException;2 importjava.text.SimpleDateFormat;3 importjava.util.Date;4 importj ...

  7. java练习案例_Java项目案例之---常用工具类练习

    常用工具类练习 1. 请根据控制台输入的特定日期格式拆分日期,如:请输入一个日期(格式如:**月**日****年),经过处理得到:****年**月**日 importjava.util.Scanner ...

  8. java语言基础(七):Collection、泛型、案例:斗地主

    目录 主要内容 教学目标 一.Collection集合 1.1 集合概述 1.2 集合框架 1.3 Collection 常用功能 二. Iterator迭代器 2.1 Iterator接口 2.1. ...

  9. java案例-实现斗地主游戏案例

    java案例-实现斗地主游戏案例 1.需求分析: 模拟斗地主游戏,利用集合,Map实现斗地主的逻辑,并且可以看分派好的牌 2.具体实现: (1)在牌盒(字符串数组)存储四个花色: String[] c ...

  10. java项目斗地主介绍_详解java_ 集合综合案例:斗地主

    案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 案例分析 1.准备牌: 牌可以设计为一个Array ...

最新文章

  1. 从0到1:CTFer成长之路
  2. www.pythonchanlleges.com
  3. Hive集成Tez引擎跑任务出现的问题(Java heap space问题)
  4. 真的,太多人辜负了.NET5!
  5. 同期两篇 Nature:运行温度高于 1K 的量子计算平台问世!
  6. Eclipse中修改SVN地址
  7. 随机变量的特征函数的定义
  8. NOPI将数据导出至EXCEL表格
  9. 51单片机(AT89S52)设计简单计算器(4位加减乘除)
  10. 8个问题看你是否真的懂 JS
  11. python database is locked_sqlite3.OperationalError: database is locked
  12. 小米平板2,Windows10与Android互刷教程,小米平板2 线刷教程
  13. 健身健美补剂之蛋白粉
  14. 如何在Word中重置用户选项和注册表设置
  15. 什么叫手机或设备的ID
  16. 肝脏~卧则回血,坐立向外供血
  17. 百度搜索结果页url参数详解
  18. 悟空“崛起”,《黑神话:悟空》或成为国产3A大作里程碑
  19. vue中引入echart图及遇到的问题记录
  20. sharemouse切窗口就锁定了什么原因_使各大网课软件监控功能和锁定功能“失效”...

热门文章

  1. 华为语音解锁设置_华为手机语音唤醒解锁 华为语音助手解锁屏幕
  2. 基于SSH的在线问卷调查系统的设计与实现
  3. MindManager 2020免费序列号激活下载及怎样运用思维导图进行头脑风暴教程
  4. JS 页面繁简字转换
  5. pythonopencv人脸相似度_OpenCV3与深度学习实例:Dlib+VGG Face实现两张脸部图像相似度比较...
  6. 容联七陌×惠州燃气丨用服务之光,点燃美好生活
  7. OpenCV 安装配置 Jupyter Notebook
  8. CMake 编译静态库和动态库
  9. FFmpeg系列-2-命令行工具之FFmpeg
  10. 一键轻松去除抖音火山等短视频水印~