博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
斗地主JAVA简要实现
阅读量:6833 次
发布时间:2019-06-26

本文共 2216 字,大约阅读时间需要 7 分钟。

hot3.png

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
hmcard = new HashMap
();                // 定义牌的序号        ArrayList
indexcard = new ArrayList
();                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
player1 = new TreeSet
();        TreeSet
player2 = new TreeSet
();        TreeSet
player3 = new TreeSet
();        TreeSet
hole = new TreeSet
();        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
pl,            HashMap
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

 

转载于:https://my.oschina.net/xxj123go/blog/1506903

你可能感兴趣的文章
ConText
查看>>
java异常捕获
查看>>
Android Service的绑定 基础概念篇
查看>>
MVC项目开发中那些用到的知识点(登录权限认证)
查看>>
错误总结
查看>>
Delphi7 (第一天:类的编写)续
查看>>
单片机基础
查看>>
ZOJ 1027 Human Gene Functions(动态规划LCS)
查看>>
变量、中文-「译」javascript 的 12 个怪癖(quirks)-by小雨
查看>>
合作开发用到的几个 设计模式
查看>>
[iOS] 在UIToolBar中增加UILabel等控件(xib/storyboard图形界面方式)
查看>>
宋体节点hdoj 1520 Anniversary party(树形dp)
查看>>
优化网站设计(七):避免在CSS中使用表达式
查看>>
让你的网站拥有微博(weibo.com)关注图标
查看>>
hadoop基本命令
查看>>
若不能连接到sql server的localhost
查看>>
JavaScript无提示关闭窗口(兼容IE/Firefox/Chrome)
查看>>
Winform窗口里的嵌入WPF的UserControl,关闭Winform父窗体的方法
查看>>
JavaScript – 6.JS面向对象基础(*) + 7.Array对象 + 8.JS中的Dictionary + 9.数组、for及其他...
查看>>
格式资料python sqlalchemy 查询结果转化为 Json格式
查看>>