java实现简单的扑克牌洗牌,发牌并查看从小到大排序好的牌

代码简介:扑克牌的类型有四种:♦,♣,♥,♠,牌的大小为从 “3”, “4”, “5”, “6”, “7”, “8”, “9”, “10”, “J”, “Q”, “K”, “A”, "2"以及小王和大王。生成一副扑克牌,然后洗牌、发牌,将三个玩家拿到的牌和底牌排序并输出
代码

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;public class PokerDemo {public static void main(String[] args) {HashMap<Integer, String> hm = new HashMap<>();ArrayList<Integer> array = new ArrayList<>();String[] colors = {"♦","♣","♥","♠"}; //花色String[] numbers = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};  //按牌的点数从小到大的顺序排列int index = 0;//牌的大小先看点数,再看花色,要保证点数小的索引值在前,点数相同则花色小的在前。for (String number : numbers) { //外层循环必须为牌的点数for (String color : colors) {   //内层循环为花色hm.put(index, color + number);array.add(index);index++;}}hm.put(index, "小王");array.add(index);index++;hm.put(index, "大王");array.add(index);Collections.shuffle(array); //洗牌,随机打乱//TreeSet根据index值排序,按从小到大排序TreeSet<Integer> xmSet = new TreeSet<>();   //存储自然排序后玩家小明的牌对应的索引值TreeSet<Integer> xhSet = new TreeSet<>();   //存储自然排序后玩家小红的牌对应的索引值TreeSet<Integer> xwSet = new TreeSet<>();   //存储自然排序后玩家小王的牌对应的索引值TreeSet<Integer> dpSet = new TreeSet<>();   //存储自然排序后底牌对应的索引值//        发牌int count = 0;  //计数器for (int i = 0; i < array.size(); i++) {if (i >= array.size() - 3) {dpSet.add(array.get(i));  //剩下最后三张留作底牌} else if (i < 6) {  //第一轮发牌,两张一起发if (i < 2) {xmSet.add(array.get(i));} else if (i < 4) {xhSet.add(array.get(i));} else {xwSet.add(array.get(i));}} else {    //从第二轮发牌开始,三张一起发if (count < 3) {xmSet.add(array.get(i));} else if (count < 6) {xhSet.add(array.get(i));} else {xwSet.add(array.get(i));}count++;}if (count == 9) {   //开始下一轮发牌count = 0;}}lookPoker("小明", xmSet, hm);lookPoker("小红", xhSet, hm);lookPoker("小王", xwSet, hm);lookPoker("底牌", dpSet, hm);}//    看牌public static void lookPoker(String gamer, TreeSet<Integer> ts, HashMap<Integer, String> hm) {System.out.print(gamer + ":");for (Integer key : ts) {String poker = hm.get(key); //根据索引值获取牌的点数System.out.print(poker + " ");}System.out.println();}
}

运行结果
运行结果


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部