本文实例为大家共享了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 pooker = new HashMap();

//创建List集合,存储编号

ArrayList pookerNumber = new ArrayList();

//定义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 player1 = new ArrayList();

ArrayList player2 = new ArrayList();

ArrayList player3 = new ArrayList();

ArrayList buttom = new ArrayList();

//发牌,使用的是集合的索引%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 player,HashMap pooker) {

//遍历ArrayList集合,获取元素,作为键,到集合Map中找值

System.out.print(name+" ");

for(Integer key : player) {

String value = pooker.get(key);

System.out.print(value+" ");

}

System.out.println();

}

}

运行结果:

包身工   大王 ♣2 ♥2 ♦2 ♦A ♦K ♣J ♥10 ♠9 ♣9 ♥9 ♦9 ♣5 ♦5 ♦4 ♠3 ♦3

清洁工   小王 ♠K ♥K ♠Q ♣Q ♦Q ♦J ♠10 ♦10 ♥8 ♠7 ♥7 ♦7 ♥5 ♠4 ♣3 ♥3

洗碗工   ♠2 ♥A ♣K ♥Q ♠J ♥J ♣10 ♠8 ♦8 ♣7 ♠6 ♣6 ♥6 ♦6 ♠5 ♣4 ♥4

底牌       ♠A ♣A ♣8

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

java写的网络版斗地主_Java实现简单的斗地主游戏相关推荐

  1. java 斗地主_Java实现简单的斗地主游戏

    本文实例为大家分享了Java实现斗地主游戏的具体代码,供大家参考,具体内容如下 原理图: 斗地主过程: 1.组合牌 * 2.洗牌 * 3.发牌 * 4.看牌 代码实现: package itcast. ...

  2. java球球大作战_java实现简单窗体小游戏----球球大作战

    需求分析 1.分析小球的属性: 坐标.大小.颜色.方向.速度 2.抽象类:Ball 设计类:BallMain-创建窗体 BallJPanel-画小球 BallAndBall-处理小球之间的关系 3.流 ...

  3. JAVA写XML乱码问题_java 写 xml 中文乱码

    今天用java写xml文件,发现写完后xml文件的中文就变成了乱码, 解决办法:把xml文件的头部编码改为utf-8,StreamResult编码方式也改为utf-8. =============部分 ...

  4. 推箱子java下载_Java实现简单推箱子游戏

    本文实例为大家分享了Java实现简单推箱子游戏的具体代码,供大家参考,具体内容如下 *编写一个简易的推箱子游戏,使用10*8的二维字符数据表示游戏画面,H表示墙壁; &表示玩家角色: o表示箱 ...

  5. java做小窗体_java实现简单窗体小游戏----球球大作战

    java实现简单窗体小游戏----球球大作战 需求分析 1.分析小球的属性: ​坐标.大小.颜色.方向.速度 2.抽象类:Ball ​设计类:BallMain-创建窗体 ​BallJPanel-画小球 ...

  6. java弹球游戏代码_Java实现简单的弹球游戏

    本文实例为大家分享了Java实现简单的弹球游戏的具体代码,供大家参考,具体内容如下 该程序主要是用于对java图形化界面编程进行联系,程序实现全部采用的是AWT包下的类. 程序仅做参考,供学习使用. ...

  7. java写的网络版斗地主_用java实现斗地主

    忙里偷闲,自己运用初学的知识是心啊斗地主功能. 斗地主画图分析 直接上源代码 import java.util.*; public class PlayCards { public static vo ...

  8. 用java写秋道程序_Java开发者使用C++写程序踩的坑

    笔者是一个很矛盾的人.平时用Java.但是一开始学习的时候学的是汇编语言,而且对C语言也很熟悉.为什么不学C++呢?是因为我可以完全用Java的编码规范去写C++.因此我不需要了解更多的诸如C++的命 ...

  9. java写红白机_Java 开发的编程噩梦,这些坑你没踩过算我输

    很多 Java 初学者在开始编程时会出现一些问题,这些问题并不是指某个特定领域的问题,也不是指对某个业务不熟悉而导致的问题,而是对基础知识不够熟悉导致的问题.而就是这些问题让我们编写了一些不够健壮的代 ...

最新文章

  1. python代码判断指定日期是当前年的第多少天
  2. idea网页预览功能_IDEA 2020.2 重磅发布,动画级新功能预览!
  3. linux shell mv/cp 错误: will not overwrite just-created <filename> with <sameFilename> 解决方法
  4. 交换机的4种网络结构方式你知道是什么吗?
  5. Php7实现文件下载,PHP7 SFTP下载文件并重命名该下载文件
  6. python 用户认证_Python使用LDAP做用户认证的方法
  7. 『mcse 2008基础架构』Chapter 01 IP协议及配置方法 第1课网络连接及配置方法
  8. windows 加域
  9. 补肾分男女,养肾如养命
  10. java微信上传图片_微信小程序图片上传java后台(前后端代码)
  11. 如何将你的 MySQL 查询速度提升 300 倍
  12. Pandas + Jinja,轻松创建一个 PDF 报表
  13. 用WPS2000制作勾股定理教学课件(转)
  14. st8s003 c语言编译器,ST系列STM8S003F3P6单片机芯片介绍
  15. gridcontrol 添加行删除行
  16. 嵌入式知识框架之六-接口与总线(SPI\I2C\ USB\PCI\PCI-E\SD\SDIO\以太网接口)
  17. HTML5期末大作业:月饼美食网站设计——月饼美食食品模板(9页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程食品设计网页规划与设计 计食品模板设计源码
  18. 美国“黑色星期五”单日销量不及双十一
  19. 各种网客平台纷纷兴起,你进入到哪个网客领域了?
  20. 全国计算机考的是ms还是mps,艺术留学读研学位分类:MA、MS、MPS 是什么学位?...

热门文章

  1. Jetson NX2 装机过程
  2. vue 循环勾选框_Vue学习笔记-遍历el-checkbox
  3. 温湿度传感器——室内温湿度检测环境系统
  4. python 删除txt文本指定内容
  5. iPhone全球性竞争力乏力,苹果恐退化为区域性品牌
  6. 推荐一款免费的数据库管理工具,比Navicat还要好用,功能还很强大
  7. 理解精准营销,知道这5个阶段就够了!
  8. 哨兵2号(Sentinel2)卫星数据处理
  9. C++围棋小游戏1.1
  10. PDF怎么转换成Excel?用迅读PDF转换器,高效又精准