java 斗地主_基于java实现斗地主代码实例解析
斗地主
规则:
1. 组装54张扑克牌
2. 将54张牌顺序打乱
3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。
4. 查看三人各自手中的牌(按照牌的大小排序)、底牌
手中扑克牌从大到小的摆放顺序:大王,小王,2,A,K,Q,J,10,9,8,7,6,5, 4,3
分析:
准备牌:
完成数字与纸牌的映射关系:
使用双列Map(HashMap)集合,完成一个数字与字符串纸牌的对应关系(相当于一个字典)。
洗牌:
通过数字完成洗牌发牌
发牌:
将每个人以及底牌设计为ArrayList,将最后3张牌直接存放于底牌,剩余牌通过对3取模依次发牌。
存放的过程中要求数字大小与斗地主规则的大小对应。
将代表不同纸牌的数字分配给不同的玩家与底牌。
看牌:
通过Map集合找到对应字符展示。
通过查询纸牌与数字的对应关系,由数字转成纸牌字符串再进行展示。
代码:
package com.oracle.demo01;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class DouDiZhu {
public static void main(String[] args) {
Map pooker=new HashMap();
ArrayList pookerNumer=new ArrayList();
//封装Map
String[] color={"♠","♦","♥","♣"};
String[] number={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
int index=2;
for (String n : number) {
for (String c : color) {
//封装Map
pooker.put(index, c+n);
//封装集合
pookerNumer.add(index);
index++;
}
}
//封装大小王
pooker.put(0, "大王");
pookerNumer.add(0);
pooker.put(1, "小王");
pookerNumer.add(1);
//System.out.println(pooker);
//System.out.println(pookerNumer);
//洗牌
Collections.shuffle(pookerNumer);
//System.out.println(pookerNumer);
//创建四个容器
ArrayList player1=new ArrayList();
ArrayList player2=new ArrayList();
ArrayList player3=new ArrayList();
ArrayList bottom=new ArrayList();
//发牌
for (int i = 0; i< pookerNumer.size(); i++) {
if(i<3){
bottom.add(pookerNumer.get(i));
}else if(i%3==0){
player1.add(pookerNumer.get(i));
}else if(i%3==1){
player2.add(pookerNumer.get(i));
}else if(i%3==2){
player3.add(pookerNumer.get(i));
}
}
//排序
Collections.sort(player1);
Collections.sort(player2);
Collections.sort(player3);
Collections.sort(bottom);
//调用看牌的方法
look("渣渣灰",pooker,player1);
look("古天乐",pooker,player2);
look("刘嘉玲",pooker,player3);
look("底牌",pooker,bottom);
}
//看牌的方法
public static void look(String name,Map pooker,ArrayList player){
System.out.println(name+":");
for (int num : player) {
System.out.print(pooker.get(num)+" ");
}
System.out.println();
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持云海天教程。
原文链接:https://www.cnblogs.com/haoduoyu0512/p/13332365.html
java 斗地主_基于java实现斗地主代码实例解析相关推荐
- 基于java斗地主_基于Java的网络版斗地主
[实例简介] 支持网络三人斗地主.有一个服务器端,同时运行三个客户端并且连接服务器端的IP就可以联机游戏了. [实例截图] [核心代码] Game └── Game ├── Client │ ├─ ...
- java比价_基于JAVA的慢慢买比价网api调用代码实例
基于JA V A的慢慢买比价网api调用代码实例 代码描述:基于JA V A的慢慢买比价网api调用代码实例 代码平台:聚合数据 import java.io.BufferedReader; impo ...
- java调用序列_基于JAVA的苹果序列号接口调用代码实例
[java]代码库import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; ...
- 租车java 查询_基于java实现租车管理系统
概述 基于java + swing + JFrame 的图书馆管理系统,租车,还车,管理员管理用户,付款等. 部分代码 public class Login extends JFrame { priv ...
- java魔塔_基于java的魔塔游戏的设计与实现论文.docx
毕业设计(论文)题目: 基于java的魔塔游戏的设计与实现 毕业设计(论文)要求及原始数据(资料): 1.了解和运用Java面向对象的特性: 2.熟练掌握模块化设计的思想,锻炼使用java语言的能力: ...
- 图像分割的java程序_基于java的图像分割(数字图像处理)
[实例简介] 基于java的图像分割(数字图像处理),程序中包含 全局阈值分割,Roberts边缘检测分割,灰度图像,直方图. [实例截图] [核心代码] ImageProcess └── Image ...
- 抽奖功能java开发_基于Java实现抽奖系统
摘要:这篇Java开发技术栏目下的"基于Java实现抽奖系统",介绍的技术点是"抽奖系统.Java.抽奖.基于.系统.实现",希望对大家开发技术学习和问题解决有 ...
- 物联网 云端java架构_基于java的物联网架构实现
基于java的多设备类型物联网架构实现 前言:19年11月开始从 [金融]行业转 [物联网],路途坎坷,一个人摸索前进,不过也学到了很多新的东西,交了很多好朋友,在此感谢各位! 以下是一些经验分享,希 ...
- java 通知_基于Java API实现通知机制
本节我们来假设这样一个场景:小伙伴们在 C语言中文网提问后,如果指定了老师回答,那么对应的老师就会收到邮件通知,这就是观察者模式的一种应用场景.看到这里,有些小伙伴可能会想到 MQ.异步队列等,其实 ...
最新文章
- 在智能家庭用OpenCV实现人员检测
- 通过IP获取地址,限制某些地址访问(GeoIp)
- jsp中文件下载的实现
- boost::sort模块spreadsort 字符串函子反向排序示例
- width:100vh与min-height:calc(100vh + 51px)
- DataTable新增列设置DefaultValue问题。
- ET7.0+HybridCLR(huatuo)热更教程
- 国内最知名的PHP开源网站管理系统,国内最强十款开源网站管理系统
- Android短信发送,监听,及其工具类封装
- JQuery实现简单小农场
- 【异常】Reason: Executor heartbeat timed out after 140927 ms
- 【机器学习】Python秘密武器之Numpy
- Curator实现分布式锁的基本原理
- FFmpeg 常用命令汇总
- autoexec.bat文件的所在位置
- 鲁宾逊微积分与“知识共享”,携手相伴进入中国
- 收藏本站——添加到浏览器收藏夹
- Swift学习笔记(5):集合类型
- 软件工程_东师站_第六周作业
- 【源码】均衡优化器Equilibrium Optimizer(EO)
热门文章
- InSAR-DInSAR 技术细节(七)轨道误差及其处理办法
- LeetCode.735 Asteriod Collision
- linux中的根文件系统(rootfs的原理和介绍)
- 著名音乐app网易云推广运营策划案
- 在线阅读网站|基于Springboot+Vue开发实现小说阅读网站
- c++十六进制字符串转int型三种方法的测试总结
- vb.net “已创建对嵌入的互操作程序集“stdole”的引用“警告的清除
- 如何提取处理网页视频中的字幕
- C# Url传参中文乱码
- 华为云杯”2020人工智能创新应用大赛总结与分析