不洗牌怎么发的牌,利用,ArrayList,HashMap,洗牌,发牌,看牌。

 2023-09-28 阅读 24 评论 0

摘要:package MyProject.DouDiZhu;import java.util.*;public class MoNiDouDizhuB {public static void main(String[] args) {//创建一个牌盒HashMap<Integer, String> pukerHsMap = new HashMap<Integer, String>();//向牌盒里装牌/*♥2 ♠3 ♣4 ♦5花色:
package MyProject.DouDiZhu;import java.util.*;public class MoNiDouDizhuB {public static void main(String[] args) {//创建一个牌盒HashMap<Integer, String> pukerHsMap = new HashMap<Integer, String>();//向牌盒里装牌/*♥2 ♠3 ♣4 ♦5花色:♥ ♠ ♣ ♦牌面:3 4 5 6 7 8 9 10 J Q K A 2*///定义牌色数组:String[] pukerColor = {"♥", "♠", "♣", "♦"};//定义牌面值:String[] pukerSize = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};//生成扑克牌,并把牌的对应该关系存到ArrayList用于洗牌,同时装进牌盒ArrayList<Integer> pukerTemp = new ArrayList<>();int ii = 0;for (String size : pukerSize) { //这时先遍历牌值,在遍历花色,才是后面排序的前提for (String color : pukerColor) {String puker = color + size;pukerHsMap.put(ii, puker);pukerTemp.add(ii);ii++;}}pukerHsMap.put(ii, "小王");pukerTemp.add(ii);ii++;pukerHsMap.put(ii, "大王");pukerTemp.add(ii);//装牌进盒//洗牌Collections.shuffle(pukerTemp); //对索引取随机排列,
/*        for (Integer index : pukerTemp) { // 利用随机后的排列,去map中找牌String pukerCode = pukerHsMap.get(index);System.out.print(pukerCode);}*///定义四个玩家,采用TreeSet(),他能对牌进行排序,拿到的依然是牌的索引TreeSet<Integer> playerA = new TreeSet<>();TreeSet<Integer> playerB = new TreeSet<>();TreeSet<Integer> playerC = new TreeSet<>();TreeSet<Integer> playerD = new TreeSet<>();//发牌for (int i = 0; i < pukerTemp.size(); i++) {if (i >= pukerTemp.size() - 3) {Integer keyD = pukerTemp.get(i);playerD.add(keyD);} else if (i % 3 == 0) {Integer pukerA = pukerTemp.get(i);playerA.add(pukerA);} else if (i % 3 == 1) {Integer pukerB = pukerTemp.get(i);playerB.add(pukerB);} else if (i % 3 == 2) {Integer pukerC = pukerTemp.get(i);playerC.add(pukerC);}}//看牌:lookPuker("张某某", playerA, pukerHsMap);lookPuker("李某某", playerB, pukerHsMap);lookPuker("王某某", playerC, pukerHsMap);lookPuker("底 牌", playerD, pukerHsMap);}public static void lookPuker(String name, TreeSet<Integer> treeSet, HashMap<Integer, String> hs) {System.out.print(name + "的牌是:");for (Integer ss : treeSet) {String sss = hs.get(ss);System.out.print(sss + " ");}System.out.println();}
}

张某某的牌是:♥3 ♣3 ♣4 ♦4 ♣6 ♦7 ♠9 ♦9 ♥10 ♠10 ♥K ♠K ♠A ♥2 ♠2 ♦2 小王 
李某某的牌是:♥4 ♠5 ♣5 ♦6 ♠7 ♣7 ♠8 ♣8 ♦8 ♣9 ♣10 ♥J ♦J ♦Q ♣K ♥A ♦A 
王某某的牌是:♠3 ♠4 ♥5 ♦5 ♥6 ♠6 ♥7 ♥8 ♥9 ♦10 ♠J ♣J ♠Q ♣Q ♣A ♣2 大王 
底 牌的牌是:♦3 ♥Q ♦K 
 

 

 

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/100903.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息