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

简介: Java-斗地主小游戏洗牌发牌(控制台程序)

一分析:

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的发给玩家1
                        iplayer1.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("");
         }  
}

三运行效果:

在这里插入图片描述

相关文章
|
20天前
|
传感器 安全 算法
消防救援支队消防员单兵装备智能养护舱电机驱动java版程序(二)
本文探讨消防救援中智能养护舱电机驱动的Java程序设计,作为系列文章第二部分。通过自动化和智能化手段,智能养护舱提升了装备维护效率与准确性。文章详细介绍了电机驱动模块的设计与实现,包括硬件选型、PID控制策略、安全保护机制及Java程序架构,确保电机精确控制、稳定性和安全性。未来将优化功能并引入智能算法和物联网技术,进一步提升装备维护智能化水平。
|
20天前
|
IDE Java 开发工具
消防救援支队消防员单兵装备智能养护舱点击驱动java版程序(一)
智能消防作战服架通过电机驱动系统提升消防员作业效率和安全性。本文介绍基于Java的电机驱动程序开发,涵盖硬件准备、软件环境搭建及驱动程序实现。重点包括串口通信配置、电机控制类设计与控制逻辑实现,确保电机高效稳定运行。通过正确配置通信协议和串口参数,并添加异常处理机制,保障系统的安全性和可靠性。
|
3月前
|
SQL 安全 Java
Java 异常处理:筑牢程序稳定性的 “安全网”
本文深入探讨Java异常处理,涵盖异常的基础分类、处理机制及最佳实践。从`Error`与`Exception`的区分,到`try-catch-finally`和`throws`的运用,再到自定义异常的设计,全面解析如何有效管理程序中的异常情况,提升代码的健壮性和可维护性。通过实例代码,帮助开发者掌握异常处理技巧,确保程序稳定运行。
71 2
|
3月前
|
IDE Java 编译器
开发 Java 程序一定要安装 JDK 吗
开发Java程序通常需要安装JDK(Java Development Kit),因为它包含了编译、运行和调试Java程序所需的各种工具和环境。不过,某些集成开发环境(IDE)可能内置了JDK,或可使用在线Java编辑器,无需单独安装。
134 2
|
4月前
|
Java Maven 数据安全/隐私保护
如何实现Java打包程序的加密代码混淆,避免被反编译?
【10月更文挑战第15天】如何实现Java打包程序的加密代码混淆,避免被反编译?
738 2
|
4月前
|
安全 Java Linux
java程序设置开机自启
java程序设置开机自启
214 1
|
4月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
158 1
|
9月前
|
Java
java实战项目超市管理系统控制台版
java实战项目超市管理系统控制台版
115 0
|
9月前
|
Java
【Java开发指南 | 第二十篇】Java流之控制台
【Java开发指南 | 第二十篇】Java流之控制台
82 2
|
9月前
|
XML 监控 Dubbo
Dubbo03【管理控制台和监控中心搭建】,Java开发实用必备的几款插件
Dubbo03【管理控制台和监控中心搭建】,Java开发实用必备的几款插件