斗地主游戏共有三名玩家参与,首先将54张牌的顺序打乱,每人轮流摸牌,剩余三张做底牌。54张牌四种花色。

此案例只有一个Test类

Test测试类

package anli06_4;import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;/*
斗地主发牌器*/
public class Test {public static void main(String[] args) {//1.准备扑克牌HashMap<Integer,String>map=new HashMap<>();ArrayList<Integer>list =new ArrayList<>();map.put(1,"大王");map.put(2,"小王");list.add(1);list.add(2);String[] numbers={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};String[] colors={"♠","♥","♣","♦"};int index=3;for (String number:numbers){for (String color:colors){map.put(index,number+color);list.add(index);index++;}}//2.洗牌Collections.shuffle(list);//3.发牌ArrayList<Integer> diPai=new ArrayList<>();ArrayList<Integer> player1=new ArrayList<>();ArrayList<Integer> player2=new ArrayList<>();ArrayList<Integer> player3=new ArrayList<>();for (int i=0;i<list.size();i++){if (i>=51){diPai.add(list.get(i));}else if (i%3==0){player1.add(list.get(i));}else if (i%3==1){player2.add(list.get(i));}else {player3.add(list.get(i));}}//4.排序Collections.sort(diPai);Collections.sort(player1);Collections.sort(player2);Collections.sort(player3);//5.看牌look("赌神",player1,map);look("赌侠",player2,map);look("赌圣",player3,map);look("底牌",diPai,map);}private static void look(String name,  ArrayList<Integer> list, HashMap<Integer, String> map) {System.out.print(name+":");for (Integer number:list){System.out.print(map.get(number)+" ");}System.out.println();}
}

结果展示

每次的发牌都是随机的

java 斗地主洗牌发牌相关推荐

  1. java集合框架的练习之斗地主洗牌发牌的模拟(升级版)

    首先,奉上java集合框架的练习之斗地主洗牌发牌的模拟(初级版)的链接:http://blog.csdn.net/striner/article/details/78489306 初级版只具有洗牌发牌 ...

  2. java中Map集合、模拟斗地主洗牌发牌、JDK9对集合添加的优化

    1.1 Map集合概述 Map集合概述 Map==>映射(一个对应一个) Map是一个接口,只要实现了该接口的类都是双列集合. 双列集合每次存储元素时都需要存储两个元素,一个元素称为键,一个元素 ...

  3. 模拟斗地主洗牌发牌-JAVA

    1.1案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1.组装54张扑克牌 2.将54张牌顺序打乱 3.三个玩家参与游戏,三人交替摸牌,,每人17张牌,最后三张留作底牌. 4.查看三人各 ...

  4. Java实现模拟斗地主洗牌发牌

    按照斗地主的规则,完成洗牌发牌看牌的动作.最终结果预计为: 具体规则: 1.组装54张扑克牌 2.将54张扑克牌顺序打乱 3.三个玩家参与游戏,三人交替摸牌,每人17张,最后三张做底牌 4.查看三人手 ...

  5. 斗地主洗牌发牌——排序版

    文章目录 前言 一.知识点 二.使用步骤 2.完整代码 感谢您的阅读,不足之处欢迎指正 前言 Java实现模拟斗地主洗牌发牌操作,留下三张底牌,对发到手的纸牌排序. 一.知识点 主要使用HashMap ...

  6. 【案例 6-4】斗地主洗牌发牌

    [案例介绍] 1.任务描述 斗地主的扑克牌游戏,相信许多人都会玩,本例要求编写一个斗地主的洗牌发牌程序,要求按照斗地主的规则完成洗牌发牌的过程.一副扑克总共有 54 张牌,牌面由花色和数字组成(包括 ...

  7. 【JAVASE】模拟斗地主洗牌发牌

    1.案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 组装54张扑克牌 54张牌顺序打乱 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 查看三人各自手中的牌(按照牌的大 ...

  8. java使用集合模拟斗地主洗牌发牌案例

    package com.itheima.模拟斗地主.斗地主版本2;import java.util.ArrayList; import java.util.Collections; import ja ...

  9. java实现斗地主洗牌发牌功能

    设计思路 初始化54张牌 洗牌 发牌 给玩家手牌排序 展示玩家手牌及3张底牌 实现思路 首先是54张牌要选择一种数据结构存放,这里选择List和Map集合都可以,我这里选择的是Map 要区分4种花色, ...

最新文章

  1. 那些让我唏嘘不已的嫡亲同学
  2. python输入输出重定向_Python标准输出重定向
  3. Java UDP 编程简介.
  4. leetcode1. 两数之和(两种方法)
  5. Hanoi(汉诺)塔问题
  6. STM32之定时器原理
  7. element-ui表单校验
  8. python爬虫 selenium模块的学习
  9. PHP使用weui,微信小程序WeUI引入
  10. 什么是 WebAssembly?
  11. Unity中一个安卓设备拆装项目,从使用到放弃ab包过程记录
  12. 程序员的寂寞,你们不懂
  13. acwing1282. 搜索关键词(AC 自动机)
  14. 基于Java GUI的资产管理系统的设计与实现
  15. 全球光纤接头闭合器(FOSC)收入预计2028年达到42.159亿美元
  16. 谷仓的安保【DFS】
  17. 店群怎么玩?2020最新玩法介绍 胖哥给大家分享干货
  18. android 強制屏幕方向,今日精品安卓App推荐:锁定屏幕旋转方向
  19. 新版白话空间统计(9):置信度的初探
  20. java 菱形代码加解释_Java 9增强的“菱形”语法

热门文章

  1. 以前flyback的osdiy
  2. nao机器人开发资料
  3. 5-26 高位震荡中,明后天有调整需求
  4. 基于JAVA前后端分离健身房管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
  5. html 画星星的坐标,如何使用画布HTML5绘制星星?
  6. CMake 的下载安装和使用
  7. JAVA判断字符串以什么什么开始_字符串不能以什么开头 Java 判断字符串是否以什么开头...
  8. WebSocket实战之四WSS配置
  9. mysql_性能优化一(慢查询分析)
  10. 对Restful的理解