Java集合实现斗地主功能

揭秘欢乐豆诈骗!Java 如何用集合实现欢乐斗地主发牌+源码解析 斗地主我想大家都会玩吧,今天分享一个 Java集合实现欢乐斗地主发牌教程! 1.什么是集合 2.实现以下斗地主的发牌机制 2.1整体的程序架构 2.2实现发牌的操作 2.2.1先拥有一副牌 洗牌 根据人员的个数 发牌的操作 牌进行整理(排序) 展示自己的牌 3.发牌原理的解析(真实的对战场景) 4.Java集合学习体系 兴趣是学习的老师,当一个人对做一件事产生兴趣时,慢慢地就开始喜欢这件事。编程也是一样的。 ... 阅读详情
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;

/*
 * 实现斗地主功能
 * 1.组合牌
 * 2.洗牌
 * 3.发牌
 * 4.看牌
 */
public class DouDiZhu {
    public static void main(String[] args) {
		//1.组合牌
    	HashMap<Integer, String> pooker=new HashMap<Integer, String>();
    	
    	ArrayList<Integer> pookerNumber=new ArrayList<Integer>();
    	
    	String[] numbers={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
    	String[] colors={"桃花","红桃","梅花","方块"};
    	int index=2;
        for (String number : numbers) {
			for (String color : colors) {
				pooker.put(index, color+number);
				pookerNumber.add(index);
				index++;
			}
		}
        pooker.put(0, "大王");
        pookerNumber.add(0);
        
        pooker.put(1, "小王");
        pookerNumber.add(1);
        
        //洗牌,将牌的编号打乱
        Collections.shuffle(pookerNumber);
        
        //发牌,将牌的编号发给玩家集合和底牌集合
        ArrayList<Integer> player1=new ArrayList<Integer>();
        ArrayList<Integer> player2=new ArrayList<Integer>();
        ArrayList<Integer> player3=new ArrayList<Integer>();
        ArrayList<Integer> bottom=new ArrayList<Integer>();

        for (int i = 0; i < pookerNumber.size(); i++) {
        	//先做好底牌
        	if (i<3) {
				bottom.add(pookerNumber.get(i));
			}
        	//对索引%3判断
			if (i%3==0) {
				player1.add(pookerNumber.get(i));
			}else if (i%3==1) {
				player2.add(pookerNumber.get(i));
			}else if (i%3==2) {
				player3.add(pookerNumber.get(i));
			}
		}
        //看牌,将玩家手中的编号到Map集合中查找,根据键找值
        Collections.sort(player1);
        Collections.sort(player2);
        Collections.sort(player3);
        //定义方法实现
        look("玩家1",player1, pooker);
        look("玩家2",player2, pooker);
        look("玩家3",player3, pooker);
        look("底牌",bottom, pooker);
	}
    public static void look(String name,ArrayList<Integer> player,HashMap<Integer, String> poker){
    	//遍历ArrayList集合
    	System.out.print(name+" ");
    	for (Integer key : player) {
			String value=poker.get(key);
			System.out.print(value+" ");
		}
    	System.out.println();
    }
}

Java代码开发斗地主游戏全代码 用一千多行Java代码实现的斗地主游戏,后端使用的技术栈是Springboot+SpringCache+Websocket,项目中运用了Java基础及面向对象的各类技术,类、接口、对象、枚举、集合、Map、数组、排序、算法、缓存等都有使用......前端使用的是Thymeleaf+原生的js/jquery。项目逻辑比较全面,满足斗地主游戏的基本需求,包括:玩家准备、抢地主、出牌、牌规则验证、出牌验证等,使用Websocket实时推送到前端交互,整体逻辑代码比较简洁明了,供大家学习参考 立即下载

相关推荐

java版斗地主源码-bkhech-boot:bkhech的弹簧靴

java版斗地主源码 UPDATE BY: guowm DATE: 2018年9月29日 VERSION: 2.1.0-SNAPSHOT BkHech Boot BkHech Boot是基于Spring Boot 2.0.4.RELEASE构建,一套支持自动配置的快速开发脚手架。 对以下项目做了集成和自动配置。 spring-mvc spring-webflux mybatis netty test common 后续还会支持 mongodb hive rabbitmq elasticsearch ... 定义了一套开发规范,集成在bkhech-boot-starter-common中。对web工程支持全局异常处理,日志记录,健康检查等。 使用apiDoc生成rest api文档,侵入性比较低。 同时,使用bkhech-boot-mybatis-extend组件可以快速生成代码。大大提高开发效率。 集成了常用的starters组件。 starters 对常用的spring-boot-starter组件都做了封装与自动配置,对于开发者来说,只需引用对应的bkhech-boot-start

Java实现斗地主(基础版)

import java.util.*; public class game { private String size; private String color; private int idenx; public game() { } public game(String size, String color,int idenx) { this.size = size; this.color = color; .

战士小小白的博客 3721

Java实现斗地主源码

Java实现斗地主源码,程序文件夹结构是从C#转过来的,期间使用一个叫C#转JAVA的工具,转换了一下语法,效果不是很理想,还是手工改了许多地方 可以看到,程序是从Program.java启动(和VS的项目一样)

Java实现斗地主实例

准备牌阶段:斗地主一般用一副牌,有54张,其中有大王小王各1张,其他52张牌,分别是4个花色,每种花色13张。而每一种花色中的13张牌为:(由大到小)2 A K Q J 10 9 8 7 6 5 4 3,也定义一个集合来存储它们。发牌阶段:要求每一位玩家拥有17张牌,剩余三张作为底牌,一人一张轮流发牌:集合的索引(0-53)%3,定义4个集合,来存储3个玩家的牌和场上的底牌。索引%3,有三个值(0,1,2),0%3=0,1%3=1,2%3=2,3%3=0,当索引>=51时,改为发底牌。......

悬在半空的博客 2670

多相机标定与单应变换:用OpenCV实现BEV俯视全景图

多路监控画面分散在不同屏幕,难以快速理解全局空间关系。通过相机标定与畸变校正,利用单应矩阵将各视角图像投影到统一的地面坐标系,即可合成BEV鸟瞰全景图。该技术是车载360°环视系统和自动驾驶BEV感知的雏形,也适用于场地安防与移动机器人导航。基于Python+OpenCV的四路相机实现,完整覆盖标定、投影变换、多路羽化融合与实时优化,为多视角拼接和俯视全景图项目提供可复现的工程参考。

weixin_29056865的博客 244

Megatron-LM深度解析:万亿参数大模型的3D并行训练之道

训练框架,采用创新的"层内模型并行"设计,通过将Transformer层的计算拆分到多个GPU上并行执行,显著提升训练效率。该系统支持3D并行策略(数据并行、张量并行、流水线并行)和序列并行等新技术,成功应用于训练5300亿参数的MT-NLG模型。相比DeepSpeed、TPU GSPMD等框架,Megatron-LM在NVIDIA GPU上展现出卓越性能,并与TensorRT等工具深度集成,形成从训练到部署的完整解决方案。该项目持续演进,已成为大模型训练的重要基准。

数据与算法架构提升之路专栏 2090

Java基础篇【斗地主】

只依赖jdk的斗地主小游戏

可爱病猫的博客 3224

COMSOL介电弹性体数值仿真指南:预拉伸圆形DEA的稳态变形分析(II)

本期博客是《COMSOL介电弹性体数值仿真指南》系列博客中的一期。聚焦于介电弹性体驱动器(DEA)中最为经典的预拉伸圆形DEA驱动器构型,对其在COMSOL平台中的具体建模步骤进行介绍与讨论。

忘了面孔的Batou 353

黑马Java——斗地主 (代码未完待续)

先让序号和数据产生对应关系,一一对应,打乱序号,再通过序号找到原始数据即可。TreeSet<Integer>可以自动对其中的元素从小到大进行排序。以谁为主导,谁作为键。

pangyaqi的博客 3068

YOLOv10改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

如何寻找创新点?为什么要使用这个模块?如何才能提升模型的精度?这是贯穿我们研究始终的问题。创新点在这个专栏中我已经整理好了,这已经省去了大部分时间,但是当我们使用这些新的模块去优化已有的模型,如何才能提升模型的精度,才是我们要达到的最终目标。当然我们可以使用传统的A+B+C的方法去堆积模块,然后是进行大量的实验去排列组合以实现最终的精度提升,这无可厚非。

Limiiiing的博客 1万+

【回眸】Tessy 单元测试软件使用指南(三)怎么打桩和指针赋值和测试

本文介绍了当使用Tessy对软件进行单元测试时如何打桩和指针相关测试的注意事项及操作要点,希望能给正在摸索Tessy的网友一点点启发。

啤酒鸭的物联网开发记录博客 1万+

java摸鱼小游戏之斗地主(一)

该文章主要讲解正则判断和集合用法

weixin_50420750的博客 902

cursor AI代码编辑器IDE对接deepseek模型api;字节ai编辑器trae

参考: https://www.cursor.com/ https://platform.deepseek.com/https://www.cursor.com/下载安装后,注册账号登录即可 再高级里选择设置 再模型这注册模型: 模型名称一定要填正确,url地址填好,最后填上秘钥验证

weixin_42357472的博客 1万+

Java之使用集合来实现一个简单的斗地主的洗牌和发牌功能

** Java之使用集合来实现一个简单的斗地主的洗牌和发牌功能: ** 难点:对洗牌后的顺序实现一个自动重排,这里我们可以使用索引,利用HashMap集合的键值对思想,将每张扑克牌的牌面值与其索引进行对应,然后我们可以通过操作索引实现对扑克牌的洗牌和发牌,最后再获取对应索引值的牌面值即可: package puker_game; import java.util.ArrayList; impo...

weixin_41443141的博客 366

免费教你快速学会分析运算放大器电路(保证学会)

本文旨在学习如何快速简单地对运算放大器进行分析

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 1万+

仿真学习系列(四十二):Sigrity仿真之走线阻抗和耦合检查

在高速电路设计中,走线的阻抗和信号线之间的耦合是影响信号完整性的重要因素。设计中可能会出现多种情况,导致阻抗变化或不匹配,例如线宽的变化、跨层分割等。传统的人工检查方法常常不够高效且易忽视细节。借助仿真软件,可以快速定位问题区域,并进行精确分析,从而有效避免或减少信号反射和串扰带来的影响。

案例文章,高速信号 425

Java集合 实现模拟斗地主的功能

package cn.itcast.demo6; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; /* * 实现模拟斗地主的功能 * 1. 组合牌 * 2. 洗牌 * 3. 发牌 * 4. 看牌 */ public class DouDiZhu { public static void main(String[] args) { //1. 组合牌 .

weixin_42488035的博客 240

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java——使用集合实现简单的斗地主发牌功能(两种方式简单粗暴!!!)

Java——使用集合实现简单的斗地主发牌功能(两种方式简单粗暴!!!)

贝尔摩德苦艾酒 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java集合实现斗地主部分功能

题目描述 使用集合实现斗地主游戏的部分功能,要求如下: (1)首先准备 54 张扑克牌并打乱顺序。 (2)由三个玩家交替摸牌,每人 17 张扑克牌,最后三张留作底牌。 (3)查看三个玩家手中的扑克牌和底牌。 (4)其中玩家手中的扑克牌需要按照大小顺序打印,规则如下: 手中扑克牌从大到小的摆放顺序:大王,小王,2,A,K,Q,J,10,9,8,7,6,5,4,3 实现思路 封装一个扑克牌类、玩家类。针对于问题(4)排序,考虑到后面需要使用比较器定义比较规则,因此在扑克牌类中需要定义一个整型成员变量用来记录该

hyment的博客 347

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

java斗地主代码花色,集合经典案例:斗地主发牌功能实现

importjava.util.ArrayList;importjava.util.Collections;importjava.util.HashMap;importjava.util.List;importjava.util.Set;public classTest {public static voidmain(String[] args) {/*思路分析:1,生成牌:用map集合保存54张...

weixin_34396144的博客 310

Java集合小案例---->利用Map与List接口的实现类 实现斗地主基本功能

文章目录前言一、实现斗地主基本功能(打乱发牌,有序看牌)1.利用HashMap集合,将牌的索引当作key(以便排序),将牌的花色+牌号当作value2.使用ListOf方法,固定花色与牌号两个集合(不可改变)3.利用Collections的shuffle()方法洗牌4.定义一个lookPoker的方法,通过遍历到的key(索引),用map集合poker的get方法获取到对应的value值(花色+牌号)二、代码部分1.输出结果总结 前言 Java初学者上课笔记,主要利用Map与List接口的实现类,实.

l263126的博客 251

集合实现发牌功能

本文介绍了使用Java集合实现斗地主发牌功能的程序设计。通过封装Card类表示扑克牌(包含花色、点数和权重),利用TreeMap存储牌面与权重的映射关系,实现了54张牌的生成、洗牌和发牌功能。程序采用Collections.shuffle()方法随机打乱牌序,通过交替发牌方式分配给3名玩家各17张牌,并保留3张底牌。最后通过重写compareTo方法实现按权重排序输出玩家手牌和底牌。该案例展示了如何将集合知识应用于实际问题解决,为后续学习并发集合和Stream API打下基础。

倾蝶羽裳,漫雨疏狂 790

java集合之斗地主和升级的集合运用总结

运用集合编写斗地主发牌小程序,改写后可以实现每个人手中的牌按照斗地主规则中牌值的大写顺序发到每个玩家的手中 进而纸牌类的另一个经典的游戏—升级的发牌动作也可以同理实现,现整理出斗地主以及升级的程序代码 一、斗地主发牌并保证玩家牌值排列 1.创建结合用于存储数字和花色 2.像集合中添加元素,可以使用集合

smiletomyself的专栏 1836

【java-集合 阶段小结】模拟斗地主洗牌发牌

前两天在家里和妈妈姐姐一起玩了斗地主,玩的时候我妈突然问我“欢乐斗地主是怎么洗牌发牌的?”一下给我问不会了,昨天晚上睡前突然想起来这件事。 1.思路分析 思来想去这个案例的难点就难在洗牌上面,如果使用Random生成随机数来实现乱序,也可以实现这个案例,但是有没有更简便的方法呢。 ...

weixin_42562275的博客 1243

Java集合--斗地主

使用Java集合、泛型等知识实现斗地主: package com.study.java.Demo02; import java.util.ArrayList; import java.util.Collections; public class DouDizhu { public static void main(String[] args) { // 泛型 St...

Just like myself. 252

JAVA用集合来完成斗地主洗牌发牌功能

JAVA用集合来完成斗地主的洗牌和发牌: 需求分析: 斗地主;3个玩家,每一个玩家17张牌,3张底牌。 第一步:创建一个牌盒,ArrayList 第二部:装牌 ​ 定义花色数组 String[] colors = {}; ​ 定义点数数组String[] numbers = {A,2,3…}; ​ 遍历花色和点数数组 ​ 拼接--------->装到牌盒中 第三步 洗牌 第四步 ​ 规律: ​ 发牌(遍历集合) ​ 判断 ​ 角

qq_37251730的博客 378
上一篇: Java集合总结
下一篇: Java异常总结
「已注销」
博客等级 码龄9年 11粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值