一分析:

1:创建扑克牌
CreatePlayingCards();
2:洗牌
AntomaticLicensing();
3:给三名玩家进行发牌
DealCards();
采用集合:
HashMap<Integer,String>map;
ArrayListcards

相关API信息:
Collections.shuffle(cards);


Collections.sort(user);

二:代码详情

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
public class PlayingCard {//创建扑克牌private static HashMap<Integer,String>map;//洗牌编号private static ArrayList<Integer>cards;public static void main(String[] args) {//创建扑克牌CreatePlayingCards();//洗牌AntomaticLicensing();//给三名玩家进行发牌,并打印发牌情况DealCards();}//【1】创建扑克牌private static void CreatePlayingCards(){//定义花色和数字String [] color={"♠","♥","♣","♦"};String[]nums={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};     //将花色和数字组合int index=0;map=new HashMap<Integer,String>();for(String numStr:nums){for(String colorStr:color){map.put(index++, colorStr+numStr);}}//加入大小王map.put(index, "小王");map.put(index+1, "大王");}//【2】洗牌private static void AntomaticLicensing() {//定义一个集合,用来表示一副54张牌的编号,ArrayList里边为0-53的数的编号cards=new ArrayList<Integer>();for(int i=0;i<=53;i++){cards.add(i);}//洗牌,使用Collections工具类的Shuffle()类Collections.shuffle(cards);}//【3】给三名玩家发牌,并打印发牌情况private static void DealCards() {//创建三个玩家和底牌ArrayList<Integer>iplayer1=new ArrayList<Integer>();ArrayList<Integer>iplayer2=new ArrayList<Integer>();ArrayList<Integer>iplayer3=new ArrayList<Integer>();//底牌ArrayList<Integer>iSecretCards=new ArrayList<Integer>();//遍历这幅洗好的牌,遍历过程中,将牌发到三个玩家和底牌中//这里采用的算法是 底牌>=51的数字  小王:i%3==0  小强:i%3==1 卢本伟:除了上面情况之外的牌for (int i = 0; i < cards.size(); i++) {if (i>=51) {iSecretCards.add(cards.get(i));}else if (i%3==0) {//与3取余为0的发给玩家1iplayer1.add(cards.get(i));}else if (i%3==1) {iplayer2.add(cards.get(i));}else {iplayer3.add(cards.get(i));}   }//打印最后结果System.out.print("小王:");Ponint(iplayer1);System.out.print("小强:");Ponint(iplayer2);System.out.print("卢本伟:");Ponint(iplayer3);System.out.print("底牌:");Ponint(iSecretCards);}//打印public static void Ponint(ArrayList<Integer> user){Collections.sort(user);for(int count:user){System.out.print(" "+map.get(count)+" ");}System.out.println("");}
}

三运行效果:

Java-斗地主小游戏洗牌发牌(控制台程序)相关推荐

  1. 纸牌游戏洗牌发牌排序算法设计

    纸牌游戏洗牌发牌排序算法设计 本文提供纸牌游戏设计制作的基础部分,即洗牌,发牌,牌张排序排列显示的算法. 以及游戏开始时间使用时间的显示.我是用简单的C语言编译器MySpringC在安卓手机上编写的. ...

  2. Java实现扑克牌的洗牌发牌看牌

    需求: 通过程序实现斗地主过程中的洗牌,发牌和看牌 方法一: 只看到每位用户手中的牌: 思路: 1:创建一个牌盒, 也就是定义一个集合对象,用ArrayList集合实现 2:往牌盒里面装牌 3:洗牌, ...

  3. Java斗地主小游戏有序版

    题目 斗地主综合案例:有序版 1.准备牌:大王小王 52张牌:循环嵌套遍历两个集合,组装52张牌 可以使用Map<Integer,String>集合储存牌的索引+组装好的牌.创建一个Lis ...

  4. Java斗地主小游戏代码

    package com.map; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; ...

  5. java——斗地主小游戏之洗牌发牌

    遇到的问题: 1.int和Integer的区别? 1)Integer是int的包装类,int则是java的一种基本数据类型 . 2)Integer变量必须实例化后才能使用,而int变量不需要 . 3) ...

  6. 扑克牌洗牌发牌java代码_java实战(一)之Java模仿斗地主洗牌发牌小游戏

    斗地主是全国范围内的一种桌面游戏,尽管全国各种类型,但大同小异.本节我们先来实现一下斗地主中的简单洗牌.发牌和看牌功能. 按照斗地主的规则,完成洗牌发牌的动作.具体规则为使用 54 张牌打乱顺序,3 ...

  7. 用JAVA编程实现斗地主小游戏(建牌,发牌,选地主,排序)

    JAVA编程实现斗地主小游戏 主程序 排序算法 主程序 public static void main(String[] args) {//牌List<String> pokes = ne ...

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

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

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

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

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

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

最新文章

  1. 成员变量和属性区别(@property那点事儿)
  2. android 高度上分权重,安卓自适应布局(关于权重weight的使用技巧!)
  3. 吴恩达 神经网络和深度学习 第一课 第四周(代码和库)
  4. JavaScript实现继承的几种方式
  5. Linux内核和Linux发行版(了解)
  6. opengl 如何加阴影_零基础如何2个月上岗C++工程师(内附资料)
  7. 大数据测试之hadoop单机环境搭建(超级详细版)
  8. 计算机学生选课系统毕业论文,学生选课管理系统论文
  9. pdf文档转换器绿色版
  10. win7计算机摄像头怎么打开,告诉你win7如何打开摄像头
  11. 反汇编linux内核,如何反汇编linux固件内核
  12. [NLP]OpenNLP词性标注器的使用
  13. 如何查看连接过的WiFi密码?详细教程(配图片)!
  14. Docker 容器内操作宿主机
  15. 雷电3接口能干嘛_Sonnet发布雷电3接口双卡读卡机RED MINIMAG Pro
  16. Auto property synthesis will not synthesizeproterty;it will be implemented by its superclass, use@dy
  17. Elasticsearch重建索引
  18. Python编程 统计Java源文件代码行数,注释行数,空白行数
  19. postfix+Dovecot自建邮箱服务器
  20. plexus使用(一)

热门文章

  1. io_uring 新异步 IO 机制,性能提升超 150%,堪比 SPDK
  2. Linux宝库名人轶事栏目 | 我与中国开源软件二十年(三)
  3. 【单目标优化求解 】基于matlab烟花算法求解单目标问题【含Matlab源码 1599期】
  4. 【定位问题】基于matlab GUI SLAM模拟地图构建和定位【含Matlab源码 1120期】
  5. 【图像去噪】基于matlab小波变换+Contourlet变换+PCA图像去噪【含Matlab源码 610期】
  6. 【数据分析】基于matlab焊缝边缘检测算法对比分析 【含Matlab源码 260期】
  7. 机器学习算法的差异_我们的机器学习算法可放大偏差并永久保留社会差异
  8. numpy获得ndarray的byte数 内存中的大小
  9. pre和code的区别
  10. 基于DKHadoop的智慧人社服务平台开发案例简述