Java实现斗地主小游戏

 更新时间:2021年06月29日 15:07:45   作者:huicooling  
这篇文章主要为大家详细介绍了Java实现斗地主小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Java实现斗地主小游戏的具体代码,供大家参考,具体内容如下

原理图:

斗地主过程:

 *  1、组合牌
 *  2、洗牌
 *  3、发牌
 *  4、看牌

代码实现:

package itcast.demo6;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
 
 
public class DouDiZhu {
 public static void main(String[] args) {
  //1、组合牌
  //创建Map集合,键:编号     值:牌
  HashMap<Integer,String> pooker = new HashMap<Integer,String>();
  //创建List集合,存储编号
  ArrayList<Integer> pookerNumber = new ArrayList<Integer>();
  //定义13个点数的数组
  String[] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
  //定义4个花色组合
  String[] colors = {"♠","♣","♥","♦"};
  
  //定义一个整数变量,作为Map的键
  int index = 2;
  //遍历数组,用花色+点数的组合,存储到Map集合中
  for(String number : numbers) {
   for(String color : colors) {
    pooker.put(index, color + number);
    pookerNumber.add(index);
    index++;
   }
  }
  //System.out.println(pooker);
  //System.out.println(pookerNumber);
  
  //单独存储大王和小王
  pooker.put(0, "大王");
  pookerNumber.add(0);
  pooker.put(1, "小王");
  pookerNumber.add(1);
  
  //洗牌,将牌的编号打乱
  Collections.shuffle(pookerNumber);
  //System.out.println(pookerNumber);
  
  //发牌,将牌编号,发给3个玩家集合+1个底牌集合
  ArrayList<Integer> player1 = new ArrayList<Integer>();
  ArrayList<Integer> player2 = new ArrayList<Integer>();
  ArrayList<Integer> player3 = new ArrayList<Integer>();
  ArrayList<Integer> buttom = new ArrayList<Integer>();
  //发牌,采用的是集合的索引%3
  for(int i = 0; i < pookerNumber.size();i++) {
   //现将底牌做好
   if(i<3) {
    //存到底牌去
    buttom.add(pookerNumber.get(i));   
   //对索引%3判断
   }else if(i % 3 == 0) {
    //索引上的编号,发给玩家1
    player1.add(pookerNumber.get(i));
   }else if(i % 3 == 1) {
    //发给玩家2
    player2.add(pookerNumber.get(i));
   }else if(i % 3 == 2) {
    //发给玩家3
    player3.add(pookerNumber.get(i));
   }   
  }
  //对玩家手中的编号进行排序
  Collections.sort(player1);
  Collections.sort(player2);
  Collections.sort(player3);
  
  //看牌,就是将玩家手中的编号,到Map集合中查找,根据键找值
  //定义实现方法 
  look("包身工  ",player1,pooker);  
  look("清洁工  ",player2,pooker);
  look("洗碗工  ",player3,pooker);
  look("底牌      ",buttom,pooker);
 }
 
 public static void look(String name,ArrayList<Integer> player,HashMap<Integer,String> pooker) {
  //遍历ArrayList集合,获取元素,作为键,到集合Map中找值
  System.out.print(name+" ");
  for(Integer key : player) {
   String value = pooker.get(key);
   System.out.print(value+" ");
  }
  System.out.println();
 }
}

运行结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java依赖倒转原则_动力节点Java学院整理

    Java依赖倒转原则_动力节点Java学院整理

    这篇文章主要介绍了Java依赖倒转原则的定义及问题由来解决方案,感兴趣的朋友一起看看吧
    2017-08-08
  • springboot整合spring-data-redis遇到的坑

    springboot整合spring-data-redis遇到的坑

    使用springboot整合redis,使用默认的序列化配置,然后使用redis-client去查询时查询不到相应的key.问题出在哪,怎么解决呢?下面小编给大家带来了springboot整合spring-data-redis遇到的坑,需要的的朋友参考下吧
    2017-04-04
  • java 指定某个jdk版本方法

    java 指定某个jdk版本方法

    这篇文章主要介绍了java 指定某个jdk版本方法的相关资料,需要的朋友可以参考下
    2017-05-05
  • 解决IDEA启动springboot项目报错java.lang.ClassNotFoundException: javax.servlet.ServletContext

    解决IDEA启动springboot项目报错java.lang.ClassNotFoundException: jav

    这篇文章主要介绍了解决IDEA启动springboot项目报错java.lang.ClassNotFoundException: javax.servlet.ServletContext问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • java实现发送手机短信

    java实现发送手机短信

    这篇文章主要介绍了java实现发送手机短信,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • java连接zookeeper的3种方式小结

    java连接zookeeper的3种方式小结

    这篇文章主要介绍了java连接zookeeper的3种方式小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • mybatis源码解读之executor包语句处理功能

    mybatis源码解读之executor包语句处理功能

    这篇文章主要介绍了executor包语句处理功能,mybatis中支持三种语句类型,不同语句类型支持的变量符号不同,下文详细内容,需要的小伙伴可以参考一下
    2022-02-02
  • 解读classpath读取resources目录下的文件

    解读classpath读取resources目录下的文件

    这篇文章主要介绍了解读classpath读取resources目录下的文件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • java获取服务器基本信息的方法

    java获取服务器基本信息的方法

    这篇文章主要介绍了java获取服务器基本信息的方法,涉及java获取系统CPU、内存及操作系统等相关信息的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 详解如何独立使用ribbon实现业务客户端负载均衡

    详解如何独立使用ribbon实现业务客户端负载均衡

    这篇文章主要为大家介绍了详解如何独立使用ribbon实现业务客户端负载均衡,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06

最新评论