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("");
         }  
}

三运行效果:

在这里插入图片描述

相关文章
|
3天前
|
Java 索引
Java实现扑克牌游戏 | 随机发牌 ( 过程拆分详解+完整代码 )
Java实现扑克牌游戏 | 随机发牌 ( 过程拆分详解+完整代码 )
|
2天前
|
监控 负载均衡 Java
如何设计高可用性的Java Web应用程序
如何设计高可用性的Java Web应用程序
|
3天前
|
Java
【Java】程序练习1(数组)
【Java】程序练习1(数组)
|
7天前
|
Java UED 开发者
JVM逃逸分析原理解析:优化Java程序性能和内存利用效率
JVM逃逸分析原理解析:优化Java程序性能和内存利用效率
|
7天前
|
机器学习/深度学习 并行计算 搜索推荐
程序技术好文:桶排序算法及其Java实现
程序技术好文:桶排序算法及其Java实现
|
8天前
|
机器学习/深度学习 Java 程序员
Java递归函数:穿越程序世界的神奇之门
Java递归函数:穿越程序世界的神奇之门
|
10天前
|
人工智能 Java BI
Java程序代码实现的实例总结
Java程序代码实现的实例总结
13 0
|
2月前
|
算法 Java 数据处理
Java程序性能优化研究
Java程序性能优化研究
30 0
|
2月前
|
缓存 监控 算法
Java程序性能优化策略与实践
在当今软件开发领域,Java作为一种广泛应用的编程语言,其程序性能优化显得尤为重要。本文将介绍一些Java程序性能优化的策略和实践,帮助开发者提高代码执行效率、减少资源消耗,并优化用户体验。通过深入探讨各种优化技术和工具,读者将能够更好地理解和运用这些策略,有效提升Java应用程序的性能。
19 1
|
9月前
|
监控 算法 Java
限时!字节Java程序性能优化宝典开源,原来这才叫性能优化
让你的Java程序更快、更稳定 程序的性能受代码质量的直接影响。那么该如何让代码在级别上提升系统性能呢? 其实性能提升永远没有捷径,需要 分析、优化、实验、监控 ,需要一点点积累和深入。随着你对项目和性能优化理解不断深入,会发现提升性能的手段变得越来越丰富,性能数据自然也会跟着上去。 一个优秀的程序员,不仅要会编写程序,更要会编写高质量的程序感受Java开发中的大智慧,让你的Java程序更优美。那么今天LZ挖出一份有关Java程序性能优化的文档,可以让你的Java程序更快、更稳定,主要是涵盖了一些Java程序的优化方法和技巧:
46 1