文档章节

斗地主JAVA简要实现

xxj123gogo
 xxj123gogo
发布于 2017/08/12 02:28
字数 337
阅读 80
收藏 0
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;

public class ddzDemo2 {
    /**
     * 斗地主--最终版
     * 
     * @param args
     *            定义牌 装牌 洗牌 发牌 看牌
     */

    public static void main(String[] args) {
        // 按从小到大存放牌
        HashMap<Integer, String> hmcard = new HashMap<Integer, String>();
        
        // 定义牌的序号
        ArrayList<Integer> indexcard = new ArrayList<Integer>();
        
        String[] colorCard = { "♣", "♦", "♥", "♠" };
        String[] digitCard = { "3", "4", "5", "6", "7", "8", "9", "10", "J",
                "Q", "K", "A", "2" };

        // 装牌
        int index = 0;
        for (String d : digitCard) {
            for (String c : colorCard) {
                hmcard.put(index, c.concat(d));
                indexcard.add(index);
                index++;
            }
        }
        hmcard.put(index, "小王");
        indexcard.add(index);
        index++;
        hmcard.put(index, "大王");
        indexcard.add(index);

        // 洗牌
        Collections.shuffle(indexcard);

        // 发牌 TressSet有序
        TreeSet<Integer> player1 = new TreeSet<Integer>();
        TreeSet<Integer> player2 = new TreeSet<Integer>();
        TreeSet<Integer> player3 = new TreeSet<Integer>();
        TreeSet<Integer> hole = new TreeSet<Integer>();
        for (int i = 0; i < indexcard.size(); i++) {
            if (i > indexcard.size() - 3 - 1) {
                hole.add(indexcard.get(i));
            } else if (i % 3 == 0) {
                player1.add(indexcard.get(i));
            } else if (i % 3 == 1) {
                player2.add(indexcard.get(i));
            } else if (i % 3 == 2) {
                player3.add(indexcard.get(i));
            }
        }

        // 看牌
        checkcard("农民1", player1, hmcard);
        checkcard("农民2", player2, hmcard);
        checkcard("地主", player3, hmcard);
        checkcard("hole", hole, hmcard);
    }

    public static void checkcard(String name, TreeSet<Integer> pl,
            HashMap<Integer, String> hmcd) {
        StringBuilder sb = new StringBuilder();
        for (int p : pl) {
            sb.append(hmcd.get(p) + " ");
        }
        if (name.equals("hole")) {
            System.out.println("底牌是: " + sb);
        } else {
            System.out.println(name + "的牌是: " + sb);
        }

    }
}

运行:

农民1的牌是: ♣3 ♠3 ♣4 ♥4 ♠4 ♥8 ♠8 ♦9 ♠9 ♠10 ♦J ♥J ♣Q ♣K ♦A ♠A ♣2 
农民2的牌是: ♥3 ♣5 ♥5 ♥6 ♠6 ♦7 ♣8 ♥9 ♦10 ♣J ♠J ♠Q ♥K ♠K ♣A ♠2 小王 
地主的牌是: ♦3 ♦4 ♦5 ♠5 ♣6 ♣7 ♥7 ♠7 ♦8 ♣10 ♥10 ♦Q ♥Q ♦K ♥A ♦2 大王 
底牌是: ♦6 ♣9 ♥2 

 

© 著作权归作者所有

共有 人打赏支持
xxj123gogo
粉丝 0
博文 48
码字总数 65794
作品 0
其它
程序员
JDK,JRE和JVM之间的区别

JDK,JRE和JVM之间的区别 易百教程移动端:请扫描本页面底部(右侧)二维码并关注微信公众号,回复:"教程" 选择相关教程阅读或直接访问:http://m.yiibai.com 好多开发者学习 Java 编程有若干...

LYQ1990
07/18
0
0
JAVA基础【集合类与排序】

本章主题:在本章之中,对java集合 Collections.sort方法做一个简要的回顾。 package test; /** * @author Yshuai * @version 创建时间:2014-08-20 上午09:49:36 */ import java.util.Arra...

止静
2014/08/20
0
0
【ASP的重生】KnifeCMS.ASP跨平台支持包(支持Unix/Linux)

ASP是一门非常优秀的web脚本语言,asp的敏捷开发和即时解析功能一直是它的优势所在,以至于java都不得不赶紧推出jsp语言与之抗衡,当年asp的火爆真可谓是红遍大江南北,它上手容易,让很多人...

邵可佳
2012/09/27
0
1
【JAVA开发基础】 MAVN项目

简要的记录: 今天在新建了一个Mavn项目以后,发现工程出现了Override的错误。baidu发现,是由于java 编译版本问题: 新建一个java工程的过程之中,并没有出现这一系列的问题: 但是在新建了...

止静
2014/08/20
0
0
与Java Web Service相关的若干概念(JAX-WS,JAX-RS)

l JWS: 是指与webservice相关的J2EE(其实现在应该叫做Java EE吧)技术叫做 JWS(全称就是 java webservice)。没错,jws指的就是 javawebservice l Jws含有的技术 1. JAX-WS 2. JAX-RS 3. JAX...

豆豆4997
2014/04/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea新建springCloud项目(5)- 订单服务

1.创建订单api,如下: 2.创建订单实现逻辑 3.新建订单、订单商品表 -- 订单 create table `order_master` ( `order_id` varchar(32) not null, `buyer_name` varchar(32) not null comment......

monroeCode
15分钟前
1
1
游戏开发经验谈(二):对战类全球服游戏的设计与实现

上篇文章《游戏开发经验谈(一):游戏架构里隐藏的五个坑及其应对方案》,我们主要讲解了游戏架构设计当中隐藏的一些坑及其应对方案,错过的小伙伴可以回溯之前的内容。本期内容,将会重点介...

UCloudTech
25分钟前
0
0
Mysql基本语法

一.联合主键 drop table CONTENT_AND_CATALOG;CREATE TABLE `tobebetter`.`CONTENT_AND_CATALOG` ( `ID` VARCHAR(120) NOT NULL , `CONTENT_ID` VARCHAR(120) , `CA......

我是菜鸟我骄傲
26分钟前
0
0
179. centos7 安装mariadb

1. centos7 中安装mariadb 1.1 执行安装 centos7 自带了mariadb yum -y install mariadb mariadb-server 1.2 启动mariadb systemctl start mariadb 1.3 设置开机启动 systemctl enable maria......

Lucky_Me
34分钟前
0
0
【AI实战】动手训练自己的目标检测模型(YOLO篇)

在前面的文章中,已经介绍了基于SSD使用自己的数据训练目标检测模型(见文章:手把手教你训练自己的目标检测模型),本文将基于另一个目标检测模型YOLO,介绍如何使用自己的数据进行训练。 ...

雪饼
40分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部