斗地主JAVA简要实现
2017-08-12 00:00
155 查看
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
相关文章推荐
- [转]Java7中的ForkJoin并发框架初探(中)——JDK中实现简要分析
- 毕设1--利用Java实现网页的模板功能技术---简要了解
- Java中使用HashMap,TreeSet和List来实现模拟斗地主的洗牌和发牌的小例子
- Java 实现斗地主扑克牌排序
- java中用HashMap,ArrayList,TreeMap实现一个模拟斗地主发牌的用例
- java用ArrayList集合来实现斗地主发牌案例
- Java实现--模拟斗地主的洗牌和发牌
- 实现斗地主发牌(java)
- Java集合实现斗地主功能
- Java中继承thread类与实现Runnable接口区别的简要的分析
- java中用map实现斗地主基础版
- 该文简要描述了DOM概念和内部逻辑结构,给出了DOM文档操作和XML文件互相转换java实现过程。
- [转]Java7中的ForkJoin并发框架初探(中)——JDK中实现简要分析
- 通过Java实现斗地主
- 黑马程序员_Java实现斗地主发牌
- Java实现遍历、排序、查找算法及简要说明
- java简要实现优先级的分组排序
- java 利用集合实现斗地主算法
- 用Java实现RESTful Web Services框架的简要步骤
- 【Java学习笔记】16.TreeMap集合实现斗地主洗牌发牌