JAVA基础 实现斗地主发牌 用到三种集合的特性 “Arraylist”,“TreeSet”, “Hashmap“
2021/5/24 12:26:08
本文主要是介绍JAVA基础 实现斗地主发牌 用到三种集合的特性 “Arraylist”,“TreeSet”, “Hashmap“,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
流程:
1.创建Hashmap集合 模拟牌盒 键是牌的id 值是牌面
2.创建ArrayList集合 元素对应牌的id 1~53
3.创建两个数组 数组1 存储四个花色 数组2 存储0~51+大,小王
4.Collections.shuffle 打乱Arraylist集合 模拟洗牌
5.遍历Arraylist集合 模拟发牌
6.创建TreeSet集合 使牌对应的id排序 模拟理牌
7.遍历TreeSet集合 根据元素对应Hashmap的键 找到对应的值 模拟看牌
import java.util.*; public class DDZdome { public static void main(String[] args) { HashMap<Integer, String> hash = new HashMap<Integer, String>(); ArrayList<Integer> arr = new ArrayList<Integer>(); String[] huase = {"♠", "♥", "♣", "♦" }; String[] pai = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "k", "A", "2" }; int id = 0; for (String p : pai) { for (String h : huase) { hash.put(id, h + p); arr.add(id); id++; } } hash.put(id, "小王"); arr.add(id); id++; hash.put(id, "大王"); arr.add(id); System.out.println(hash); Collections.shuffle(arr); TreeSet<Integer> pl1 = new TreeSet<Integer>(); TreeSet<Integer> pl2 = new TreeSet<Integer>(); TreeSet<Integer> pl3 = new TreeSet<Integer>(); TreeSet<Integer> dp = new TreeSet<Integer>(); for (int i=0;i<arr.size();i++){ if (i>=arr.size()-3){ dp.add(arr.get(i)); }else if(i%3==0){ pl1.add(arr.get(i)); }else if(i%3==1){ pl2.add(arr.get(i)); }else if(i%3==2){ pl3.add(arr.get(i)); } } System.out.println(pl1); show("地主",pl1,hash); show("农民",pl2,hash); show("农民",pl3,hash); show("底牌",dp,hash); } public static void show(String name,TreeSet<Integer> tree,HashMap<Integer, String> hash){ System.out.print(name+" :"); for (int i:tree){ System.out.print(hash.get(i)+" "); } System.out.println(); } }
输出结果:
{0=♠3, 1=♥3, 2=♣3, 3=♦3, 4=♠4, 5=♥4, 6=♣4, 7=♦4, 8=♠5, 9=♥5, 10=♣5, 11=♦5, 12=♠6, 13=♥6, 14=♣6, 15=♦6, 16=♠7, 17=♥7, 18=♣7, 19=♦7, 20=♠8, 21=♥8, 22=♣8, 23=♦8, 24=♠9, 25=♥9, 26=♣9, 27=♦9, 28=♠10, 29=♥10, 30=♣10, 31=♦10, 32=♠J, 33=♥J, 34=♣J, 35=♦J, 36=♠Q, 37=♥Q, 38=♣Q, 39=♦Q, 40=♠k, 41=♥k, 42=♣k, 43=♦k, 44=♠A, 45=♥A, 46=♣A, 47=♦A, 48=♠2, 49=♥2, 50=♣2, 51=♦2, 52=小王, 53=大王} [0, 2, 3, 5, 6, 7, 10, 14, 16, 18, 26, 32, 38, 42, 44, 45, 48] 地主 :♠3 ♣3 ♦3 ♥4 ♣4 ♦4 ♣5 ♣6 ♠7 ♣7 ♣9 ♠J ♣Q ♣k ♠A ♥A ♠2 农民 :♥5 ♦5 ♥6 ♦6 ♥7 ♦7 ♣8 ♦8 ♥9 ♠10 ♦10 ♥J ♦J ♥Q ♥k ♦A 小王 农民 :♥3 ♠4 ♠5 ♠6 ♠8 ♥8 ♦9 ♣10 ♣J ♠Q ♦Q ♦k ♣A ♥2 ♣2 ♦2 大王 底牌 :♠9 ♥10 ♠k
这篇关于JAVA基础 实现斗地主发牌 用到三种集合的特性 “Arraylist”,“TreeSet”, “Hashmap“的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南